Skip to main content

pylint-gitlab

pipeline status coverage pylint pip

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

[![pylint](https://<MAIN_GROUP>.gitlab.io/<SUB_GROUP>/<PROJECT>/badges/pylint.svg)](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)

Source distribution for pylint-gitlab 2.1.1
File Size Uploaded
pylint_gitlab-2.1.1.tar.gz 19.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pylint-gitlab 2.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

2.1.1 This release

2 release files

2.1.0

1 release file

2.0.1

2 release files

2.0.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page