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.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d24b43b19dcbee5459a8d4f9a76f56a0a867e0a5f930973190443c2b7cdbfdc |
|
MD5 | e07301b8d39676ae6874a681a45fd9c6 |
|
BLAKE2b-256 | 770cd88049af689498727681df91b96ecffe762c96588e569129d1832eac3048 |
Hashes for black_gl_code_quality-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e838a0c2a31bb9a91b96939c36b24af0b661cdabbe35c3b065fa4bbaf859c000 |
|
MD5 | 621e9594700df6a4bab946c48a4ea4a0 |
|
BLAKE2b-256 | 523bfedcef8ebc24598e12ae28c70c35f15b490d3b82c94ff25c799d4b89c516 |