pylint-gitlab
This project provides pylint formatters for a nice integration with GitLab CI.
What it is and what it does
pylint-gitlab extends pylint with three custom output formatters designed to integrate code linting directly into GitLab CI workflows. It transforms pylint's analysis results into formats that GitLab understands natively: Code Climate JSON (for merge request code quality reports), an HTML page with linked linting details, and badge scores for visual feedback. The package wraps pylint itself as a runtime dependency, so installing pylint-gitlab automatically brings in pylint and its ecosystem (astroid, isort, mccabe, and others).
You run pylint as normal but specify one of the custom formatters via --output-format, either by full class name (pylint_gitlab.GitlabCodeClimateReporter) or by loading the plugin and using a short alias (gitlab-codeclimate). The package is most commonly used in .gitlab-ci.yml scripts to generate artifacts that GitLab's CI/CD pipeline consumes—code quality reports appear in merge requests, and badge SVGs can be published to GitLab Pages.
Use it for:
- Generate Code Climate JSON reports in GitLab CI to display code quality metrics on merge requests.
- Create HTML pages with pylint results and source code links for publishing to GitLab Pages.
- Produce badge SVGs showing linting scores that can be embedded in project documentation or CI artifacts.
- Integrate pylint linting into nbQA workflows using the CodeClimateReporterNoHash variant.
- Automate linting feedback in CI/CD pipelines without writing custom report parsing logic.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides custom pylint output formatters that integrate linting results into GitLab CI—generating Code Climate JSON reports, HTML pages with linting details, and badge scores.
Yes, if you use GitLab CI and want pylint integration without custom report parsing. The package is stable, has no known vulnerabilities, and handles the boilerplate of formatting pylint output for GitLab's native tooling. The aging maintenance status (264 days since release) is a minor concern—verify compatibility with your pylint version before adopting in a new project, but the package is widely downloaded and appears functional.
Install
pylint-gitlab on PyPI
pip
pip install pylint-gitlabuv
uv add pylint-gitlabpoetry
poetry add pylint-gitlabInstalling pylint-gitlab
Before you install
Low install friction; pure Python wheel. Maintenance status is aging (264 days since last release), though the package remains in the top 5000 by downloads and has no known vulnerabilities.
License in practice
GPLv3 copyleft license: you may use and modify the package freely, but any derivative work or distribution must also be licensed under GPLv3 and include source code.
Quickstart
pip install pylint-gitlab
pylint --exit-zero --output-format=pylint_gitlab.GitlabCodeClimateReporter . > codeclimate.json
# Or with plugin loaded:
pylint --exit-zero --load-plugins=pylint_gitlab --output-format=gitlab-codeclimate . > codeclimate.json
Requires pylint (installed automatically as a dependency) and Python >=3.7.
Verify before relying
- Whether the aging maintenance status (264 days since release) affects compatibility with recent pylint versions.
- Whether all three formatters (CodeClimate, CodeClimateNoHash, PagesHtml) remain fully functional in current GitLab CI environments.
Package facts
| License | GPLv3 (copyleft) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 16 — anybadge, astroid, dill, importlib-metadata, isort, jinja2, markupsafe, mccabe, packaging, platformdirs, pylint, tomli, tomlkit, typing-extensions, wrapt, zipp |
| Maintenance | aging — 264 days since the last release |
| First released | |
| Downloads | 850,549/month — #4,906 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pylint_gitlab-2.1.1-py3-none-any.whl
Tags
More Quality Assurance packages
Coverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
blackBlack reformats Python source code to a…
permissive · top 1,000 on PyPI
pytest-xdistpytest-xdist distributes pytest tests across…
permissive · top 1,000 on PyPI
cfn-lintValidates AWS CloudFormation templates in YAML…
permissive · top 1,000 on PyPI
flake8-gl-codeclimateA Flake8 formatter that outputs linting results…
permissive · top 15,000 on PyPI
mypy-gitlab-code-qualityConverts mypy type-checking output into GitLab…
permissive · top 15,000 on PyPI
pylint-actionsA Pylint plugin that formats linting output as…
permissive · top 15,000 on PyPI
pylint-json2htmlConverts pylint JSON reports into formatted…
copyleft · top 15,000 on PyPI
secscanner2junitConverts GitLab security scanner output (SAST,…
copyleft · top 15,000 on PyPI
pylint-junitGenerates JUnit-formatted XML reports from…
permissive · top 15,000 on PyPI
pylint-exitTranslates pylint's bit-encoded exit codes into…
permissive · top 15,000 on PyPI
pylint-djangoA Pylint plugin that improves static analysis…
copyleft · top 5,000 on PyPI
lintroLintro unifies code formatting, linting, and…
permissive · top 15,000 on PyPI
cwltestcwltest validates the output of Common Workflow…
permissive · top 15,000 on PyPI