Skip to content

Commit

Permalink
Add JSON schema validation (#2539)
Browse files Browse the repository at this point in the history
* Add JSON schema validation

* fix version

* move
  • Loading branch information
ludeeus committed Jun 4, 2024
1 parent 0d792c8 commit a7dfaab
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 1 deletion.
27 changes: 26 additions & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
6 changes: 6 additions & 0 deletions .github/workflows/upload-critical.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/upload-removed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
26 changes: 26 additions & 0 deletions tools/jsonschema/critical.schema.json
Original file line number Diff line number Diff line change
@@ -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"
]
}
}
27 changes: 27 additions & 0 deletions tools/jsonschema/removed.schema.json
Original file line number Diff line number Diff line change
@@ -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"
]
}
}
9 changes: 9 additions & 0 deletions tools/jsonschema/repositories.schema.json
Original file line number Diff line number Diff line change
@@ -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\\.-]+$"
}
}

0 comments on commit a7dfaab

Please sign in to comment.