From ccf22bb226175505d1913a7dc37f6e11f14bc829 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Fri, 13 Feb 2026 10:12:09 +0100 Subject: [PATCH 1/9] add prek and gha for validation --- .github/workflows/json-lint.yml | 45 ++++ .pre-commit-config.yaml | 13 ++ plugins.json | 398 ++++++++++++++++++-------------- 3 files changed, 281 insertions(+), 175 deletions(-) create mode 100644 .github/workflows/json-lint.yml create mode 100644 .pre-commit-config.yaml diff --git a/.github/workflows/json-lint.yml b/.github/workflows/json-lint.yml new file mode 100644 index 0000000..364a153 --- /dev/null +++ b/.github/workflows/json-lint.yml @@ -0,0 +1,45 @@ +name: JSON Lint + +on: + pull_request: + paths: + - '**.json' + push: + branches: + - main + paths: + - '**.json' + +jobs: + json-lint: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install Prettier + run: npm install -g prettier + + - name: Lint JSON files + run: | + echo "Linting JSON files..." + find . -name "*.json" -not -path "./node_modules/*" -not -path "./.git/*" | while read file; do + echo "Checking $file" + if ! jq empty "$file" 2>/dev/null; then + echo "❌ Invalid JSON in $file" + exit 1 + else + echo "✅ Valid JSON: $file" + fi + done + echo "All JSON files are valid!" + + - name: Check JSON formatting with Prettier + run: | + echo "Checking JSON formatting..." + prettier --check "**/*.json" "!node_modules/**" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..970b4bd --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,13 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 + hooks: + - id: check-json + name: Check JSON syntax + + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v3.1.0 + hooks: + - id: prettier + types: [json] + name: Format JSON with Prettier diff --git a/plugins.json b/plugins.json index 16cf6ab..2d35b01 100644 --- a/plugins.json +++ b/plugins.json @@ -1,176 +1,224 @@ -[{ - "id": "nft-fasta", - "latest": "1.0.0", - "url": "https://github.com/askimed/nft-fasta", - "github": "askimed/nft-fasta", - "description": "Provides support for FASTA files.", - "author": "Lukas Forer", - "keywords": [], - "releases": [{ - "version": "1.0.0", - "url": "https://github.com/askimed/nft-fasta/releases/download/v1.0.0/nft-fasta-1.0.0.jar" - }] -},{ - "id": "nft-vcf", - "latest": "1.0.7", - "url": "https://github.com/seppinho/nft-vcf", - "github": "seppinho/nft-vcf", - "description": "Provides support for VCF files.", - "author": "Sebastian Schönherr", - "keywords": [], - "releases": [{ - "version": "1.0.2", - "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.2/nft-vcf-1.0.2-jar-with-dependencies.jar" - },{ - "version": "1.0.4", - "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.4/nft-vcf-1.0.4.jar" - },{ - "version": "1.0.5", - "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.5/nft-vcf-1.0.5.jar" - },{ - "version": "1.0.6", - "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.6/nft-vcf-1.0.6.jar" - },{ - "version": "1.0.7", - "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.7/nft-vcf-1.0.7.jar" - }] -},{ - "id": "nft-bam", - "latest": "0.6.0", - "url": "https://nvnieuwk.github.io/nft-bam", - "github": "nvnieuwk/nft-bam", - "description": "Provides some helper functionality for handling SAM/BAM/CRAM files during tests", - "author": "Nicolas Vannieuwkerke", - "keywords": [], - "releases": [{ - "version": "0.1.0", - "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.1.0/nft-bam-0.1.0.jar" - },{ - "version": "0.1.1", - "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.1.1/nft-bam-0.1.1.jar" - },{ - "version": "0.2.0", - "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.2.0/nft-bam-0.2.0.jar" - },{ - "version": "0.3.0", - "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.3.0/nft-bam-0.3.0.jar" - },{ - "version": "0.4.0", - "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.4.0/nft-bam-0.4.0.jar" - },{ - "version": "0.5.0", - "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.5.0/nft-bam-0.5.0.jar" - },{ - "version": "0.6.0", - "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.6.0/nft-bam-0.6.0.jar" - }] -},{ - "id": "nft-compress", - "latest": "0.1.0", - "url": "https://github.com/lukfor/nft-compress", - "github": "lukfor/nft-compress", - "description": "Provides support for ZIP files.", - "author": "Lukas Forer", - "keywords": [], - "releases": [{ - "version": "0.1.0", - "url": "https://github.com/lukfor/nft-compress/releases/download/0.1.0/nft-compress-0.1.0.jar" - }] -},{ - "id": "nft-csv", - "latest": "0.1.0", - "url": "https://github.com/lukfor/nft-csv", - "github": "lukfor/nft-csv", - "description": "Provides support for CSV files.", - "author": "Lukas Forer", - "keywords": [], - "releases": [{ - "version": "0.1.0", - "url": "https://github.com/lukfor/nft-csv/releases/download/0.1.0/nft-csv-0.1.0.jar" - }] -},{ - "id": "nft-utils", - "latest": "0.0.9", - "url": "https://github.com/nf-core/nft-utils", - "github": "nf-core/nft-utils", - "description": "nf-test utility functions for Nextflow pipelines.", - "author": "nf-core", - "keywords": [], - "releases": [{ - "version": "0.0.1", - "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.1/nft-utils-0.0.1.jar" - },{ - "version": "0.0.2", - "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.2/nft-utils-0.0.2.jar" - },{ - "version": "0.0.3", - "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.3/nft-utils-0.0.3.jar" - },{ - "version": "0.0.4", - "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.4/nft-utils-0.0.4.jar" - },{ - "version": "0.0.5", - "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.5/nft-utils-0.0.5.jar" - },{ - "version": "0.0.6", - "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.6/nft-utils-0.0.6.jar" - },{ - "version": "0.0.7", - "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.7/nft-utils-0.0.7.jar" - },{ - "version": "0.0.8", - "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.8/nft-utils-0.0.8.jar" - },{ - "version": "0.0.9", - "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.9/nft-utils-0.0.9.jar" - }] -},{ - "id": "nft-fastq", - "latest": "0.0.1", - "url": "https://github.com/lukfor/nft-fastq", - "github": "lukfor/nft-fastq", - "description": "Provides support for FASTQ files.", - "author": "Lukas Forer", - "keywords": [], - "releases": [{ - "version": "0.0.1", - "url": "https://github.com/lukfor/nft-fastq/releases/download/v0.0.1/nft-fastq-0.0.1-all.jar" - }] -}, { - "id": "nft-anndata", - "latest": "0.1.0", - "url": "https://github.com/nictru/nft-anndata", - "github": "nictru/nft-anndata", - "description": "Provides support for AnnData (h5ad) files.", - "author": "Nico Trummer", - "keywords": [], - "releases": [{ - "version": "0.1.0", - "url": "https://github.com/nictru/nft-anndata/releases/download/v0.1.0/nft-anndata-0.1.0.jar" - }] -}, { - "id": "nft-tiff", - "latest": "0.1.0", - "url": "https://github.com/nf-core/nft-tiff", - "github": "nf-core/nft-tiff", - "description": "Provides support for TIFF files.", - "author": "nf-core", - "keywords": [], - "releases": [{ - "version": "0.1.0", - "url": "https://github.com/nf-core/nft-tiff/releases/download/v0.1.0/nft-tiff-0.1.0.jar" - }] -}, { - "id": "nft-parquet", - "latest": "0.0.1", - "url": "https://github.com/incsteps/nft-parquet", - "github": "incsteps/nft-parquet", - "description": "Provides support for Parquet files.", - "author": "Jorge Aguilera", - "keywords": ["parquet"], - "releases": [{ - "version": "0.0.1", - "url": "https://github.com/incsteps/nft-parquet/releases/download/0.0.1/nft-parquet-0.0.1.jar" - }] -} +[ + { + "id": "nft-fasta", + "latest": "1.0.0", + "url": "https://github.com/askimed/nft-fasta", + "github": "askimed/nft-fasta", + "description": "Provides support for FASTA files.", + "author": "Lukas Forer", + "keywords": [], + "releases": [ + { + "version": "1.0.0", + "url": "https://github.com/askimed/nft-fasta/releases/download/v1.0.0/nft-fasta-1.0.0.jar" + } + ] + }, + { + "id": "nft-vcf", + "latest": "1.0.7", + "url": "https://github.com/seppinho/nft-vcf", + "github": "seppinho/nft-vcf", + "description": "Provides support for VCF files.", + "author": "Sebastian Schönherr", + "keywords": [], + "releases": [ + { + "version": "1.0.2", + "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.2/nft-vcf-1.0.2-jar-with-dependencies.jar" + }, + { + "version": "1.0.4", + "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.4/nft-vcf-1.0.4.jar" + }, + { + "version": "1.0.5", + "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.5/nft-vcf-1.0.5.jar" + }, + { + "version": "1.0.6", + "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.6/nft-vcf-1.0.6.jar" + }, + { + "version": "1.0.7", + "url": "https://github.com/seppinho/nft-vcf/releases/download/v1.0.7/nft-vcf-1.0.7.jar" + } + ] + }, + { + "id": "nft-bam", + "latest": "0.6.0", + "url": "https://nvnieuwk.github.io/nft-bam", + "github": "nvnieuwk/nft-bam", + "description": "Provides some helper functionality for handling SAM/BAM/CRAM files during tests", + "author": "Nicolas Vannieuwkerke", + "keywords": [], + "releases": [ + { + "version": "0.1.0", + "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.1.0/nft-bam-0.1.0.jar" + }, + { + "version": "0.1.1", + "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.1.1/nft-bam-0.1.1.jar" + }, + { + "version": "0.2.0", + "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.2.0/nft-bam-0.2.0.jar" + }, + { + "version": "0.3.0", + "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.3.0/nft-bam-0.3.0.jar" + }, + { + "version": "0.4.0", + "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.4.0/nft-bam-0.4.0.jar" + }, + { + "version": "0.5.0", + "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.5.0/nft-bam-0.5.0.jar" + }, + { + "version": "0.6.0", + "url": "https://github.com/nvnieuwk/nft-bam/releases/download/0.6.0/nft-bam-0.6.0.jar" + } + ] + }, + { + "id": "nft-compress", + "latest": "0.1.0", + "url": "https://github.com/lukfor/nft-compress", + "github": "lukfor/nft-compress", + "description": "Provides support for ZIP files.", + "author": "Lukas Forer", + "keywords": [], + "releases": [ + { + "version": "0.1.0", + "url": "https://github.com/lukfor/nft-compress/releases/download/0.1.0/nft-compress-0.1.0.jar" + } + ] + }, + { + "id": "nft-csv", + "latest": "0.1.0", + "url": "https://github.com/lukfor/nft-csv", + "github": "lukfor/nft-csv", + "description": "Provides support for CSV files.", + "author": "Lukas Forer", + "keywords": [], + "releases": [ + { + "version": "0.1.0", + "url": "https://github.com/lukfor/nft-csv/releases/download/0.1.0/nft-csv-0.1.0.jar" + } + ] + }, + { + "id": "nft-utils", + "latest": "0.0.9", + "url": "https://github.com/nf-core/nft-utils", + "github": "nf-core/nft-utils", + "description": "nf-test utility functions for Nextflow pipelines.", + "author": "nf-core", + "keywords": [], + "releases": [ + { + "version": "0.0.1", + "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.1/nft-utils-0.0.1.jar" + }, + { + "version": "0.0.2", + "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.2/nft-utils-0.0.2.jar" + }, + { + "version": "0.0.3", + "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.3/nft-utils-0.0.3.jar" + }, + { + "version": "0.0.4", + "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.4/nft-utils-0.0.4.jar" + }, + { + "version": "0.0.5", + "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.5/nft-utils-0.0.5.jar" + }, + { + "version": "0.0.6", + "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.6/nft-utils-0.0.6.jar" + }, + { + "version": "0.0.7", + "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.7/nft-utils-0.0.7.jar" + }, + { + "version": "0.0.8", + "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.8/nft-utils-0.0.8.jar" + }, + { + "version": "0.0.9", + "url": "https://github.com/nf-core/nft-utils/releases/download/0.0.9/nft-utils-0.0.9.jar" + } + ] + }, + { + "id": "nft-fastq", + "latest": "0.0.1", + "url": "https://github.com/lukfor/nft-fastq", + "github": "lukfor/nft-fastq", + "description": "Provides support for FASTQ files.", + "author": "Lukas Forer", + "keywords": [], + "releases": [ + { + "version": "0.0.1", + "url": "https://github.com/lukfor/nft-fastq/releases/download/v0.0.1/nft-fastq-0.0.1-all.jar" + } + ] + }, + { + "id": "nft-anndata", + "latest": "0.1.0", + "url": "https://github.com/nictru/nft-anndata", + "github": "nictru/nft-anndata", + "description": "Provides support for AnnData (h5ad) files.", + "author": "Nico Trummer", + "keywords": [], + "releases": [ + { + "version": "0.1.0", + "url": "https://github.com/nictru/nft-anndata/releases/download/v0.1.0/nft-anndata-0.1.0.jar" + } + ] + }, + { + "id": "nft-tiff", + "latest": "0.1.0", + "url": "https://github.com/nf-core/nft-tiff", + "github": "nf-core/nft-tiff", + "description": "Provides support for TIFF files.", + "author": "nf-core", + "keywords": [], + "releases": [ + { + "version": "0.1.0", + "url": "https://github.com/nf-core/nft-tiff/releases/download/v0.1.0/nft-tiff-0.1.0.jar" + } + ] + }, + { + "id": "nft-parquet", + "latest": "0.0.1", + "url": "https://github.com/incsteps/nft-parquet", + "github": "incsteps/nft-parquet", + "description": "Provides support for Parquet files.", + "author": "Jorge Aguilera", + "keywords": ["parquet"], + "releases": [ + { + "version": "0.0.1", + "url": "https://github.com/incsteps/nft-parquet/releases/download/0.0.1/nft-parquet-0.0.1.jar" + } + ] + } ] From 7e29b05a045276857b3df2aedd910793c8facc50 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 13 Feb 2026 10:18:32 +0100 Subject: [PATCH 2/9] Update .pre-commit-config.yaml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matthias Hörtenhuber --- .pre-commit-config.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 970b4bd..a94df86 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -11,3 +11,5 @@ repos: - id: prettier types: [json] name: Format JSON with Prettier + additional_dependencies: + - prettier@3.8.1 From 782d837b09776b0b0a7aafa6aa654a809c9e7885 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Fri, 13 Feb 2026 10:20:29 +0100 Subject: [PATCH 3/9] add schema --- .pre-commit-config.yaml | 8 ++++++ plugins.schema.json | 64 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 plugins.schema.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a94df86..9934de4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,6 +5,14 @@ repos: - id: check-json name: Check JSON syntax + - repo: https://github.com/python-jsonschema/check-jsonschema + rev: 0.28.0 + hooks: + - id: check-jsonschema + name: Validate plugins.json schema + files: ^(_data/)?plugins\.json$ + args: ["--schemafile", "plugins.schema.json"] + - repo: https://github.com/pre-commit/mirrors-prettier rev: v3.1.0 hooks: diff --git a/plugins.schema.json b/plugins.schema.json new file mode 100644 index 0000000..72a2d59 --- /dev/null +++ b/plugins.schema.json @@ -0,0 +1,64 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "items": { + "type": "object", + "required": ["id", "latest", "url", "github", "description", "author", "keywords", "releases"], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the plugin" + }, + "latest": { + "type": "string", + "description": "Latest version of the plugin", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + "url": { + "type": "string", + "format": "uri", + "description": "URL to the plugin repository" + }, + "github": { + "type": "string", + "description": "GitHub repository in format owner/repo", + "pattern": "^[^/]+/[^/]+$" + }, + "description": { + "type": "string", + "description": "Description of the plugin" + }, + "author": { + "type": "string", + "description": "Author of the plugin" + }, + "keywords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Keywords associated with the plugin" + }, + "releases": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "required": ["version", "url"], + "properties": { + "version": { + "type": "string", + "description": "Version of the release", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + "url": { + "type": "string", + "format": "uri", + "description": "Download URL for the release" + } + } + } + } + } + } +} From 53d31bfa91c5b5433de734a65027e894333eb491 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Fri, 13 Feb 2026 10:22:13 +0100 Subject: [PATCH 4/9] run prek on the schema --- plugins.schema.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins.schema.json b/plugins.schema.json index 72a2d59..1832b4b 100644 --- a/plugins.schema.json +++ b/plugins.schema.json @@ -3,7 +3,16 @@ "type": "array", "items": { "type": "object", - "required": ["id", "latest", "url", "github", "description", "author", "keywords", "releases"], + "required": [ + "id", + "latest", + "url", + "github", + "description", + "author", + "keywords", + "releases" + ], "properties": { "id": { "type": "string", From 7f58a4fb0fe0a1eb1e092ca240d9521851b58287 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 13 Feb 2026 10:27:32 +0100 Subject: [PATCH 5/9] Update .github/workflows/json-lint.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matthias Hörtenhuber --- .github/workflows/json-lint.yml | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/.github/workflows/json-lint.yml b/.github/workflows/json-lint.yml index 364a153..6521d0b 100644 --- a/.github/workflows/json-lint.yml +++ b/.github/workflows/json-lint.yml @@ -17,29 +17,4 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - - - name: Install Prettier - run: npm install -g prettier - - - name: Lint JSON files - run: | - echo "Linting JSON files..." - find . -name "*.json" -not -path "./node_modules/*" -not -path "./.git/*" | while read file; do - echo "Checking $file" - if ! jq empty "$file" 2>/dev/null; then - echo "❌ Invalid JSON in $file" - exit 1 - else - echo "✅ Valid JSON: $file" - fi - done - echo "All JSON files are valid!" - - - name: Check JSON formatting with Prettier - run: | - echo "Checking JSON formatting..." - prettier --check "**/*.json" "!node_modules/**" + - uses: j178/prek-action@v1 From c89d7b43b56112da8ae87345db4e22d415355b4c Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 13 Feb 2026 10:29:05 +0100 Subject: [PATCH 6/9] Update plugins.schema.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matthias Hörtenhuber --- plugins.schema.json | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins.schema.json b/plugins.schema.json index 1832b4b..16ebd91 100644 --- a/plugins.schema.json +++ b/plugins.schema.json @@ -3,6 +3,7 @@ "type": "array", "items": { "type": "object", + "additionalProperties": false, "required": [ "id", "latest", From a19c71d097fb062df63ff7755972fe4e5fe2b85e Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 13 Feb 2026 10:38:07 +0100 Subject: [PATCH 7/9] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matthias Hörtenhuber --- plugins.schema.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins.schema.json b/plugins.schema.json index 16ebd91..6ceeae3 100644 --- a/plugins.schema.json +++ b/plugins.schema.json @@ -36,6 +36,7 @@ }, "description": { "type": "string", + "minLength": 1, "description": "Description of the plugin" }, "author": { @@ -51,6 +52,7 @@ }, "releases": { "type": "array", + "additionalProperties": false "minItems": 1, "items": { "type": "object", From 1e3c7ac1cf94b1c6419224ac27b7ca8c16aacec2 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Fri, 13 Feb 2026 10:41:16 +0100 Subject: [PATCH 8/9] fix syntax --- plugins.schema.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins.schema.json b/plugins.schema.json index 6ceeae3..ce3220c 100644 --- a/plugins.schema.json +++ b/plugins.schema.json @@ -17,30 +17,35 @@ "properties": { "id": { "type": "string", + "minLength": 1, "description": "Unique identifier for the plugin" }, "latest": { "type": "string", + "minLength": 1, "description": "Latest version of the plugin", "pattern": "^\\d+\\.\\d+\\.\\d+$" }, "url": { "type": "string", + "minLength": 1, "format": "uri", "description": "URL to the plugin repository" }, "github": { "type": "string", + "minLength": 1, "description": "GitHub repository in format owner/repo", "pattern": "^[^/]+/[^/]+$" }, "description": { "type": "string", - "minLength": 1, + "minLength": 1, "description": "Description of the plugin" }, "author": { "type": "string", + "minLength": 1, "description": "Author of the plugin" }, "keywords": { @@ -52,7 +57,7 @@ }, "releases": { "type": "array", - "additionalProperties": false + "additionalProperties": false, "minItems": 1, "items": { "type": "object", From 83c045461fb0f837d63f24cf0e471b02263a3285 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 13 Feb 2026 11:06:26 +0100 Subject: [PATCH 9/9] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matthias Hörtenhuber --- .github/workflows/json-lint.yml | 2 +- .pre-commit-config.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/json-lint.yml b/.github/workflows/json-lint.yml index 6521d0b..17a8273 100644 --- a/.github/workflows/json-lint.yml +++ b/.github/workflows/json-lint.yml @@ -15,6 +15,6 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - uses: j178/prek-action@v1 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9934de4..0bc7006 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,12 +1,12 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.5.0 + rev: v6.0.0 hooks: - id: check-json name: Check JSON syntax - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.28.0 + rev: 0.36.1 hooks: - id: check-jsonschema name: Validate plugins.json schema