pylint-gitlab
This project provides pylint formatters for a nice integration with GitLab CI.
| Formatter | Description |
|---|---|
GitlabCodeClimateReporter |
Maps the linting result in Code Climate format |
GitlabCodeClimateReporterNoHash |
Maps the linting result in Code Climate format but without hashing the fingerprint. Needed to work with nbQA. |
GitlabPagesHtmlReporter |
Creates a table in an HTML page with linting results and links to source code. |
Usage
Install package pylint-gitlab:
pip install pylint-gitlab
The pylint package is a dependency of pylint-gitlab so it will be installed automatically.
Now the formatters can be used by running pylint command and setting custom output formats with parameter --output-format.
pylint --exit-zero --output-format=pylint_gitlab.GitlabCodeClimateReporter . > codeclimate.json
pylint --exit-zero --output-format=pylint_gitlab.GitlabPagesHtmlReporter . > pylint.html
Alternatively, you can load the pylint_gitlab plugin and then use the shortened --output-format names:
pylint --exit-zero --load-plugins=pylint_gitlab --output-format=gitlab-codeclimate . > codeclimate.json
pylint --exit-zero --load-plugins=pylint_gitlab --output-format=gitlab-pages-html . > pylint.html
GitLab CI integration
Here is a minimalistic version for a .gitlab-ci.yml file:
pylint:
stage: test
image: python:3.7-slim
before_script:
- mkdir -p public/badges public/lint
- echo undefined > public/badges/$CI_JOB_NAME.score
- pip install pylint-gitlab
script:
- pylint --exit-zero --output-format=text $(find -type f -name "*.py" ! -path "**/.venv/**") | tee /tmp/pylint.txt
- sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' /tmp/pylint.txt > public/badges/$CI_JOB_NAME.score
- pylint --exit-zero --output-format=pylint_gitlab.GitlabCodeClimateReporter $(find -type f -name "*.py" ! -path "**/.venv/**") > codeclimate.json
- pylint --exit-zero --output-format=pylint_gitlab.GitlabPagesHtmlReporter $(find -type f -name "*.py" ! -path "**/.venv/**") > public/lint/index.html
after_script:
- anybadge --overwrite --label $CI_JOB_NAME --value=$(cat public/badges/$CI_JOB_NAME.score) --file=public/badges/$CI_JOB_NAME.svg 4=red 6=orange 8=yellow 10=green
- |
echo "Your score is: $(cat public/badges/$CI_JOB_NAME.score)"
artifacts:
paths:
- public
reports:
codequality: codeclimate.json
when: always
pages:
stage: deploy
image: alpine:latest
script:
- echo
artifacts:
paths:
- public
only:
refs:
- master
You can then use the published badge for linting results.
[](https://<MAIN_GROUP>.gitlab.io/<SUB_GROUP>/<PROJECT>/lint/)
Metadata
Release files for pylint-gitlab 2.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pylint_gitlab-2.1.1.tar.gz | 19.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pylint_gitlab-2.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.8 kB
Release files / pylint_gitlab-2.1.1.tar.gz
| Download URL | pylint_gitlab-2.1.1.tar.gz |
|---|---|
| Size | 19.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d68192cc5863e54a87c85e8817f44cf74efc91f8256f158cb6e89f8f129ceafe
|
|
BLAKE2b-256 checksum How to use checksums |
c686009b4d40c3c75113c277f20f4f3a165df0cdf62fd0214588aeffb83978e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / pylint_gitlab-2.1.1-py3-none-any.whl
| Download URL | pylint_gitlab-2.1.1-py3-none-any.whl |
|---|---|
| Size | 20.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
080394371c56ecbdb12fedec1e9aa37e4f01bc7fa4f6895d102588a063ecb214
|
|
BLAKE2b-256 checksum How to use checksums |
a76d535b2935987e290d25f237de604d4c40a8aa5f0cab3469c1809eff63485a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|