Skip to content
This repository has been archived by the owner on Nov 24, 2023. It is now read-only.

Generate GitLab Code Quality report from an output of pydocstyle.

License

Notifications You must be signed in to change notification settings

vis4rd/pydocstyle-gitlab-code-quality

Repository files navigation

Deprecated GitLab CI PyPI - Python Version PyPI - License PyPI PyPI - Downloads

pydocstyle-gitlab-code-quality

Generate GitLab Code Quality report from an output of pydocstyle.

Deprecation notice!

Important

The pydocstyle-gitlab-code-quality is no longer actively maintained, because pydocstyle has been officialy deprecated in favor of Ruff.

Usage

# passing pydocstyle output through stdin (output printed to stdout)
pydocstyle main.py | pydocstyle-gitlab-code-quality > codequality.json
# or
pydocstyle-gitlab-code-quality < pydocstyle_out.txt > codequality.json

# using CLI flags (output printed directly to a file)
pydocstyle-gitlab-code-quality --input pydocstyle_out.txt --output codequality.json

CLI configuration

pydocstyle-gitlab-code-quality allows for the following CLI arguments:

flag example default description
--minor <CODE>... --minor=D100,D101 empty Error codes to be displayed with MINOR severity.
--major <CODE>... --major=D102,D103 empty Error codes to be displayed with MAJOR severity.
--critical <CODE>... --critical=D104,D105 empty Error codes to be displayed with CRITICAL severity.
-i, --ignore <CODE>... --ignore=D106,D107 empty Error codes to be omitted from Code Quality report.
-f, --file, --input <FILE> -f pydocstyle_out.txt empty Path to the file with pydocstyle output.
-o, --output <FILE> -o codequality.json empty Path to the file where the Code Quality report will be saved.
--no-stdout N/A False Do not print the Code Quality report to stdout.
--log-file <FILE> --log-file latest.log pgcq_latest.log Path to the file where the log will be saved.
--enable-logging N/A False Enable logging to a file. For debugging purposes only.

By default, all error codes are reported with INFO severity.

In case the same error code from pydocstyle has been provided to many severity options, the highest severity level takes precedence.

Example .gitlab-ci.yml file

image: python:alpine
variables:
  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"

cache:
  paths:
    - .cache/pip/
    - venv/

before_script:
  - python --version  # For debugging
  - python -m venv venv
  - . venv/bin/activate

codequality:
  script:
    - pip install pydocstyle pydocstyle-gitlab-code-quality
    - pydocstyle program.py > pydocstyle-out.txt
    - pydocstyle-gitlab-code-quality --input pydocstyle-out.txt --output codequality.json
  artifacts:
    when: always
    reports:
      codequality: codequality.json
  allow_failure: true

Credits

This script was inspired by mypy-gitlab-code-quality. Thanks!

License

The project is licensed under MIT - a free and open-source license. For more information, please see the license file.