[Connector-linter]: add core linter engine and project scaffold [1/4]#6293
[Connector-linter]: add core linter engine and project scaffold [1/4]#6293
Conversation
3fe3c27 to
1d56c72
Compare
There was a problem hiding this comment.
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_linterproject scaffolding (pyproject, lockfile, Python version pin). - Implemented core engine components: context/models, check registry, discovery/runner,
# noqafiltering, 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. |
Codecov Report✅ All modified and coverable lines are covered by tests. 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
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
dcf0b1b to
1180a4d
Compare
c611d6e to
4b22528
Compare
…ors/warnings to JSON summary
…, and exception severity escalation
Drop the redundant `passed: bool` field from CheckFinding and CheckResult. Severity (INFO / WARNING / ERROR) now fully encodes check outcome. All consumers (formatters, runner, __main__, tests) updated to branch on r.severity instead of r.passed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ntext, severity helpers
4b22528 to
0220586
Compare
Proposed changes
connector_linterproject scaffolding (pyproject.toml, uv.lock, .python-version)Related issues
Checklist
Further comments
This is the first PR in a 4-part stacked PR series for the connector linter: