A simple wrapper to convert Black outputs to codeclimate report format for GitLab-CI
Project description
Black GitLab Code Quality
This project aim to convert Black report to CodeClimate format that can be ingest by GitLab.
→ poetry run black-gl-cq src/black_gl_code_quality | jq
[
{
"type": "issue",
"description": "Black would reformat",
"location": {
"lines": {
"begin": 1,
"end": 1
},
"path": "src/black_gl_code_quality/__main__.py"
},
"severity": "major"
},
{
"type": "issue",
"description": "Black would reformat",
"location": {
"lines": {
"begin": 1,
"end": 1
},
"path": "src/black_gl_code_quality/error.py"
},
"severity": "major"
}
]
Motivation
For security concerns, Docker-in-Docker has been disabled in all GitLab runners that I have access/manage. Because the Code Quality template shipped with GitLab instances use CodeClimate CLI that requires a Docker environment, we can't use it and an alternative solution was required to obtain Black errors in our Code Quality reports.
How to install
Simply run the following command:
pip install black-gl-code-quality
If you use Poetry, you can add it to your dev-dependencies:
poetry add --group dev black-gl-code-quality
Usage
There is two ways to use this tool:
- by piping Black
- by calling
black-gl-code-quality
(or by it's aliasblack-gl-cq
) directly
Piping with Black
Piping with Black requires to forward stderr
to stdout
. You can use the following
command in the .gitlab-ci.yml
:
black --check src/ 2>&1 | black-gl-cq > black-code-quality-report.json
Here's an example for a GitLab-CI job:
lint:black:
stage: test
script:
- source .venv/bin/activate
- black --check src/ 2>&1 | black-gl-cq > black-code-quality-report.json
artifacts:
when: always
reports:
codequality: black-code-quality-report.json
Calling black-gl-code-quality
directly
Calling black-gl-code-quality
(or it's alias black-gl-cq
) execute Black with the
--check
argument. It forwards all arguments you pass if you need to configure Black
via the CLI.
Specifying source folders is MANDATORY.
Here's an example for a GitLab-CI job:
lint:black:
stage: test
script:
- source .venv/bin/activate
- black-gl-cq src/ > black-code-quality-report.json
artifacts:
when: always
reports:
codequality: black-code-quality-report.json
Admit we want to skip string normalization:
lint:black:
stage: test
script:
- source .venv/bin/activate
- black-gl-cq -S src/ > black-code-quality-report.json
artifacts:
when: always
reports:
codequality: black-code-quality-report.json
Change severity
By default, all errors have the severity major
. Depending how you consider Black issues
important, you can change the severity for all errors returned by the report by using
one of the following values
with the BLACK_GL_SEVERITY
environment variable: info
, minor
, major
, critical
, blocker
.
Here's an example for a GitLab-CI job:
lint:black:
stage: test
variables:
BLACK_GL_SEVERITY: minor
script:
- source .venv/bin/activate
- black-gl-cq src/ > black-code-quality-report.json
artifacts:
when: always
reports:
codequality: black-code-quality-report.json
Contributions
In case you have a suggestion or want a new feature, feel free to open a discussion.
If you found a bug, you can open an issue.
In order to maintain an overall good code quality, this project use the following tools:
Linting and formatting tools are configured to match the current default rules of Black.
Please ensure to run these tools before commiting and submiting a Pull request. In case one of these mentionned tools report an error, the CI will automatically fail.
In case you are able to fix by yourself a bug, enhance the code or implement a new feature, feel free to send a Pull request.
License
This project is released under the BSD-3 Clause. Feel free to use, contribute, fork and do what you want with it. Please keep all licenses, copyright notices and mentions in case you use, re-use, steal, fork code from this repository.
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
Hashes for black_gl_code_quality-0.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1d51971262bf5ea891ed2db613aeb01f023a4a192420f021e927d6ab360768c |
|
MD5 | ec4a359d3e60d7ae31f70df732f6c639 |
|
BLAKE2b-256 | a44be65e2b4a5262f217f9878d9129b591a25d78a6e03f30f0f019f67b4a81b5 |
Hashes for black_gl_code_quality-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc9336433e0b3b9dce73baf8c4bb01f488b8b73cf0dc80093235f3b15382630b |
|
MD5 | d9c1c881363d5064e714d1d1e307c81b |
|
BLAKE2b-256 | aadb98153a6fb387f73b79d074d367ed978403e93d27cc2c492dc3c42c9e94c9 |