Skip to main content

This project provides pylint formatters for a nice integration with GitLab CI.

Project description

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/)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylint-gitlab-2.0.0.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

pylint_gitlab-2.0.0-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file pylint-gitlab-2.0.0.tar.gz.

File metadata

  • Download URL: pylint-gitlab-2.0.0.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for pylint-gitlab-2.0.0.tar.gz
Algorithm Hash digest
SHA256 84ac60e432c6bb37fc5da5f51fb094d73369c7ea4ffc6f7ed7e4e387434a314b
MD5 e562d69e3308d3f246724f21ce2e03ba
BLAKE2b-256 52f47902917951ce35e9da09976a8ca4eca9b259b2258e98cc35ff2924f85adc

See more details on using hashes here.

File details

Details for the file pylint_gitlab-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pylint_gitlab-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e163f0e546f23926a1e51327e086af5f41771ef66feed9b41b461fc108309b4
MD5 23b6dc27e58f6cc9808b0b8fe2222b04
BLAKE2b-256 77f6b242451e0a216b0803ab8ac90c71d3956979e7aacd7cb3e7e75f58b9e8de

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page