This project provides pylint formatters for a nice integration with GitLab CI.
Project description
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.
[![pylint](https://<MAIN_GROUP>.gitlab.io/<SUB_GROUP>/<PROJECT>/badges/pylint.svg)](https://<MAIN_GROUP>.gitlab.io/<SUB_GROUP>/<PROJECT>/lint/)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pylint-gitlab-2.0.1.tar.gz
.
File metadata
- Download URL: pylint-gitlab-2.0.1.tar.gz
- Upload date:
- Size: 19.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa767782744a1fefbdaf21ea6d18aaaf28fa858c98aaf5e584bcc25856ee2385 |
|
MD5 | f13bb4b55d5ae4861704992b4be6c294 |
|
BLAKE2b-256 | b32acb8648fe5c07ecfd5794da6d8057bfe3527b760dfdf50e77231cf56b9817 |
File details
Details for the file pylint_gitlab-2.0.1-py3-none-any.whl
.
File metadata
- Download URL: pylint_gitlab-2.0.1-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff1e8c36269c61090bdb289abed429ac805ee79138ede1829cfbc67ac2e15603 |
|
MD5 | 8ed68297bfc7c22f93d49ce088bd0eb8 |
|
BLAKE2b-256 | 901361358951fb076e52b8bfa99e463812b16d5111518623632cc5e6a96e4762 |