fix(validation): replace gherkin-lint with GPLint - #340
Merged
Conversation
GPLint is a maintained fork of gherkin-lint with current Cucumber dependencies, which removes the stale cucumber-messages/uuid dependency chain behind Dependabot alert camaraproject#17. Keep the validation engine identity and G-001 through G-025 rule mapping stable while migrating the config and adapter to GPLint JSON output.
Regenerate validation/package-lock.json with npm 10.8.2 so GitHub Actions Node 20 npm ci includes GPLint optional peer dependencies.
hdamker
marked this pull request as ready for review
June 17, 2026 10:09
hdamker
marked this pull request as draft
June 17, 2026 10:43
Contributor
Author
|
Changed back to draft to decouple the new configuration from the validation v0 configuration (Megalinter is still using gherkin-lint and the configuration file). |
Contributor
Author
|
Done: I split the Gherkin linter configs so validation v1 uses GPLint's standard |
hdamker
marked this pull request as ready for review
June 17, 2026 11:31
Include the required typescript peer from ts-node, introduced via GPLint optional dependency resolution, so the lock matches CI npm.
rartych
approved these changes
Jun 17, 2026
Contributor
Author
|
Note: CI failed because npm resolver drift around GPLint’s optional |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What type of PR is this?
cleanup
What this PR does / why we need it:
This PR replaces the validation framework Gherkin linter dependency from
gherkin-lintto GPLint.gherkin-lintpulls in stale Cucumber packages and the vulnerableuuiddependency chain behind Dependabot alert #17. GPLint is a maintained fork with current Cucumber packages, while preserving the same rule model closely enough for a narrow migration.The change keeps CAMARA Validation v1 behavior stable while leaving legacy v0 validation untouched:
gherkinG-001throughG-025rule metadata mappinglinting/config/.gplintrclinting/config/.gherkin-lintrccompatible with the v0 MegaLinter /gherkin-lintworkflow and marks it deprecatedonly-one-whenentry from the GPLint config onlyrequired-tags.tagsto GPLint'srequired-tags.scenarioregex-array shape in.gplintrcgplintand parse JSON findings from exit code 0 or 1Which issue(s) this PR fixes:
Fixes #138
Special notes for reviewers:
The full
validation/audit is still non-zero after this PR because of unrelated Redocly/OpenTelemetry/Redoc/protobufjs advisories. This PR is expected to clear theuuidalert path only.Local verification for the final config split:
python3 -m pytest validation/tests/test_gherkin_adapter.py validation/tests/test_rule_metadata_integrity.py validation/tests/test_orchestrator.pypython3 -m pytest validation/tests tooling_lib/testsgplint --format json --config linting/config/.gplintrc ...smoke testgit diff --checknpm ci --ignore-scriptsinvalidation/as the package manifest/lockfile sync gatenpm ls gplint gherkin-lint uuidChangelog input
Additional documentation
This section can be blank.