Revision 16th of November
This commit is contained in:
parent
7b06820170
commit
30ca3b6a08
@ -3,7 +3,7 @@ import json
|
|||||||
import itertools
|
import itertools
|
||||||
import yaml
|
import yaml
|
||||||
import jsonschema
|
import jsonschema
|
||||||
from typing import Any
|
from typing import Any, TypedDict
|
||||||
import requests
|
import requests
|
||||||
try:
|
try:
|
||||||
from yachalk import chalk
|
from yachalk import chalk
|
||||||
@ -55,13 +55,13 @@ def get_file(slug: str, path: str):
|
|||||||
def plural(amount: int, name: str, plural: str = 's'):
|
def plural(amount: int, name: str, plural: str = 's'):
|
||||||
return f"{amount} {name}{plural[:amount^1]}"
|
return f"{amount} {name}{plural[:amount^1]}"
|
||||||
|
|
||||||
from typing import NamedTuple
|
from typing import TypedDict
|
||||||
|
|
||||||
class Artifact(NamedTuple):
|
class Artifact(TypedDict):
|
||||||
file: str
|
file: str
|
||||||
lines: list[int]
|
lines: list[int]
|
||||||
|
|
||||||
class SecurityRule(NamedTuple):
|
class SecurityRule(TypedDict):
|
||||||
status: str
|
status: str
|
||||||
argument: str
|
argument: str
|
||||||
artifacts: None | list[Artifact]
|
artifacts: None | list[Artifact]
|
||||||
@ -99,8 +99,11 @@ def check_security_rules(security_rules: dict[Any, Any] | None) -> dict[int, Sec
|
|||||||
for n in range(1, 19):
|
for n in range(1, 19):
|
||||||
try:
|
try:
|
||||||
rule = security_rules.get(n, None)
|
rule = security_rules.get(n, None)
|
||||||
if rule is None: raise jsonschema.ValidationError('Rule {} is not evaluated'.format(n))
|
if rule is None: raise jsonschema.ValidationError(f"Rule {n} is not evaluated")
|
||||||
jsonschema.validate(rule, rule_schema)
|
jsonschema.validate(rule, rule_schema)
|
||||||
|
rule: SecurityRule
|
||||||
|
if rule["status"] == "unknown":
|
||||||
|
warning(f"Rule {n} is still unknown!")
|
||||||
except jsonschema.ValidationError as e:
|
except jsonschema.ValidationError as e:
|
||||||
error("Security rule {n}: {msg} at $.{n}.{path}".format(n=n, msg=e.message, path=e.json_path))
|
error("Security rule {n}: {msg} at $.{n}.{path}".format(n=n, msg=e.message, path=e.json_path))
|
||||||
warning("Not checking further rules!")
|
warning("Not checking further rules!")
|
||||||
|
Loading…
Reference in New Issue
Block a user