Add JSON schema validation (#2539)

* Add JSON schema validation

* fix version

* move
This commit is contained in:
Joakim Sørensen
2024-06-04 07:07:57 +02:00
committed by GitHub
parent 0d792c884d
commit a7dfaabaf6
6 changed files with 100 additions and 1 deletions

View File

@ -22,6 +22,31 @@ jobs:
- name: Validate
run: jq --raw-output . appdaemon blacklist critical integration netdaemon plugin python_script removed template theme
jsonschema:
name: JSON schema
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4.1.1
- name: Critical
uses: cardinalby/schema-validator-action@3.1.1
with:
file: "critical"
schema: "tools/jsonschema/critical.schema.json"
- name: Repositories
uses: cardinalby/schema-validator-action@3.1.1
with:
file: "appdaemon|blacklist|integration|netdaemon|plugin|python_script|template|theme"
schema: "tools/jsonschema/repositories.schema.json"
- name: Removed
uses: cardinalby/schema-validator-action@3.1.1
with:
file: "removed"
schema: "tools/jsonschema/removed.schema.json"
sorted:
name: Sorted
runs-on: ubuntu-latest
@ -30,4 +55,4 @@ jobs:
uses: actions/checkout@v4.1.1
- name: Check lists
run: python3 scripts/is_sorted.py
run: python3 scripts/is_sorted.py

View File

@ -20,6 +20,12 @@ jobs:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
- name: Validate with JSON schema
uses: cardinalby/schema-validator-action@3.1.1
with:
file: 'critical'
schema: 'tools/jsonschema/critical.schema.json'
- name: Set up Python
uses: actions/setup-python@v5.0.0
id: python

View File

@ -20,6 +20,12 @@ jobs:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
- name: Validate with JSON schema
uses: cardinalby/schema-validator-action@3.1.1
with:
file: 'removed'
schema: 'tools/jsonschema/removed.schema.json'
- name: Set up Python
uses: actions/setup-python@v5.0.0
id: python

View File

@ -0,0 +1,26 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Schema for critical repositories",
"type": "array",
"items": {
"type": "object",
"properties": {
"repository": {
"type": "string",
"pattern": "^[\\w\\.-]+\/[\\w\\.-]+$"
},
"reason": {
"type": "string"
},
"link": {
"type": "string",
"format": "uri"
}
},
"required": [
"repository",
"reason",
"link"
]
}
}

View File

@ -0,0 +1,27 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Schema for removed repositories",
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "string"
},
"reason": {
"type": "string"
},
"removal_type": {
"type": "string"
},
"repository": {
"type": "string",
"pattern": "^[\\w\\.-]+\/[\\w\\.-]+$"
}
},
"required": [
"removal_type",
"repository"
]
}
}

View File

@ -0,0 +1,9 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Shema for a repository list",
"type": "array",
"items": {
"type": "string",
"pattern": "^[\\w\\.-]+\/[\\w\\.-]+$"
}
}