Skip to content

[Connector-linter]: add core linter engine and project scaffold [1/4]#6293

Open
jabesq wants to merge 17 commits intomasterfrom
feat/connector-linter-1-foundation
Open

[Connector-linter]: add core linter engine and project scaffold [1/4]#6293
jabesq wants to merge 17 commits intomasterfrom
feat/connector-linter-1-foundation

Conversation

@jabesq
Copy link
Copy Markdown
Member

@jabesq jabesq commented Apr 23, 2026

Proposed changes

  • Add connector_linter project scaffolding (pyproject.toml, uv.lock, .python-version)
  • Implement core linter engine: models, runner, registry, formatters, noqa support, CLI entrypoint
  • Add README with usage documentation and check reference

Part 1 of 4 — This PR introduces the linter framework. Check rules are added in follow-up PRs (stacked on this branch).

Related issues

Checklist

  • I consider the submitted work as finished
  • I have signed my commits using GPG key.
  • I tested the code for its functionality using different use cases
  • I added/update the relevant documentation (either on github or on notion)
  • Where necessary I refactored code to improve the overall quality

Further comments

This is the first PR in a 4-part stacked PR series for the connector linter:

  1. [Connector-linter]: add core linter engine and project scaffold [1/4] #6293 (this): Foundation — scaffold + core engine + README
  2. [Connector-linter]: add VC1xx config and VC2xx metadata checks [2/4] #6292: VC1xx config + VC2xx metadata checks
  3. [Connector-linter]: add VC3xx code checks [3/4] #6291: VC3xx code checks
  4. [Connector-linter]: add VC4xx docker and VC5xx deprecation checks [4/4] #6294: VC4xx docker + VC5xx deprecation checks

@jabesq jabesq requested a review from Copilot April 23, 2026 10:04
@github-actions github-actions Bot added the filigran team use to identify PR from the Filigran team label Apr 23, 2026
@jabesq jabesq changed the title feat(connector-linter): add core linter engine and project scaffold [1/4] feat(linter): add core linter engine and project scaffold [1/4] Apr 23, 2026
@jabesq jabesq changed the title feat(linter): add core linter engine and project scaffold [1/4] [Connector-linter]: add core linter engine and project scaffold [1/4] Apr 23, 2026
@jabesq jabesq force-pushed the feat/connector-linter-1-foundation branch from 3fe3c27 to 1d56c72 Compare April 23, 2026 10:09
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces a new shared/connector_linter Python project providing the foundational framework for a “Verified criteria” connector linter (CLI, registry, runner, result models, formatting, and # noqa support), to be extended with actual rule packs in follow-up stacked PRs.

Changes:

  • Added connector_linter project scaffolding (pyproject, lockfile, Python version pin).
  • Implemented core engine components: context/models, check registry, discovery/runner, # noqa filtering, and output formatters.
  • Added CLI entrypoints (check, list) and a comprehensive README describing usage and planned rule codes.

Reviewed changes

Copilot reviewed 11 out of 12 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
shared/connector_linter/uv.lock Adds locked dependencies for the new linter project.
shared/connector_linter/pyproject.toml Defines the new package, dependencies, and CLI script entrypoint.
shared/connector_linter/.python-version Pins the local Python version for the linter project.
shared/connector_linter/connector_linter/init.py Package metadata and version export.
shared/connector_linter/connector_linter/main.py Click-based CLI (check, list) and exit-code handling.
shared/connector_linter/connector_linter/models.py Core dataclasses and connector context loader.
shared/connector_linter/connector_linter/registry.py Decorator-based global check registry.
shared/connector_linter/connector_linter/runner.py Check auto-discovery, select/ignore filtering, execution, and result collection.
shared/connector_linter/connector_linter/formatters.py Text/JSON/GitHub Actions output formatting and scoring summary.
shared/connector_linter/connector_linter/noqa.py Inline suppression parsing and filtering logic.
shared/connector_linter/connector_linter/checks/init.py Initializes the checks package for auto-discovery.
shared/connector_linter/README.md Usage docs, architecture overview, and planned check reference.

Comment thread shared/connector_linter/connector_linter/models.py
Comment thread shared/connector_linter/.python-version Outdated
Comment thread shared/connector_linter/connector_linter/models.py Outdated
Comment thread shared/connector_linter/connector_linter/__main__.py
Comment thread shared/connector_linter/connector_linter/noqa.py Outdated
Comment thread shared/connector_linter/connector_linter/formatters.py Outdated
Comment thread shared/connector_linter/README.md
Comment thread shared/connector_linter/connector_linter/runner.py Outdated
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 41.27%. Comparing base (5623a9a) to head (0220586).
⚠️ Report is 6 commits behind head on master.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6293      +/-   ##
==========================================
+ Coverage   41.02%   41.27%   +0.25%     
==========================================
  Files        2150     2158       +8     
  Lines      129036   129540     +504     
==========================================
+ Hits        52939    53472     +533     
+ Misses      76097    76068      -29     
Flag Coverage Δ
baseline 0.00% <ø> (ø)
connectors 74.56% <100.00%> (+0.22%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Powlinett
Powlinett previously approved these changes Apr 24, 2026
Copy link
Copy Markdown
Member

@Powlinett Powlinett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great tool!! Can't wait to use it IRL 🔥

May I suggest to move it into /shared/tools alongside the scripts to generate the files required for the XTM Composer ?

Thank you @jabesq 🤘

Comment thread shared/connector_linter/connector_linter/models.py Outdated
Comment thread shared/connector_linter/connector_linter/models.py
Comment thread shared/connector_linter/connector_linter/runner.py Outdated
@jabesq jabesq force-pushed the feat/connector-linter-1-foundation branch from c611d6e to 4b22528 Compare April 30, 2026 14:25
@jabesq jabesq force-pushed the feat/connector-linter-1-foundation branch from 4b22528 to 0220586 Compare May 5, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

filigran team use to identify PR from the Filigran team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[all] Create a verification script

4 participants