Skip to main content

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

Project description

pylint-gitlab

pipeline status coverage pylint

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

Formatter Description
GitlabCodeClimateReporter Maps the linting result in Code Climate format
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

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://<USER/GROUP_NAME>.gitlab.io/<PROJECT_PATH>/badges/pylint.svg)](https://<USER/GROUP_NAME>.gitlab.io/<PROJECT_PATH>/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-0.1.0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

pylint_gitlab-0.1.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pylint-gitlab-0.1.0.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for pylint-gitlab-0.1.0.tar.gz
Algorithm Hash digest
SHA256 213de3945433cf4185e8823292a53929145215cd48eb148d1fa24652819ecad6
MD5 500f752439d1a63ff310a26e23779684
BLAKE2b-256 f8a8c4a41b0a1003a54b1a36e998d6425234000da3cab3f8cc31cabbf5b20788

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pylint_gitlab-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for pylint_gitlab-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bab72a38a9b611cd66c776134200c119434f36b5a9c7e69994b4fc64eb54ec66
MD5 5a55fb1485064d2bcff8d90c8f8f89eb
BLAKE2b-256 1742f712d106fcbb9295a78d17b845fa70e03fae75b4d8d5510cf77340b7bc4f

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