Convert black --diff output to a Code Climate report
Project description
black-codeclimate
Convert the output of black --diff
to a report conforming to the Code Climate spec.
It is made to be used in GitLab CI to generate a Code Quality report, which will show a nice widget in merge requests listing the file and the lines affected by the reformatting.
black-codeclimate
uses unidiff to parse a diff file and detect changes, and outputs a JSON array of Code Climate issue objects reporting the filename and line range of the change. In theory it could be used on any unified diff data, but I only tested it with black --diff
's output. Hit me up in the issues if you use it for anything else :)
Usage
Pipe the output of black --diff
into black-codeclimate
:
black --diff src/ | black-codeclimate > black_report.json
Or specify a file to use as input:
black-codeclimate black.diff > black_report.json
You can also change the severity, description and check_name of the issues in the resulting report by specifying command line flags:
black-codeclimate --severity blocker --description "would reformat [black]" --check-name "black" black.diff > black_report.json
Run black-codeclimate -h
to see a list of the available flags.
Adding it to GitLab
Add this step to your .gitlab-ci.yml
file:
lint:black:
stage: lint
before_script:
- # Install black and black-codeclimate...
script:
# --check fails the job if any inconsistent formatting is detected.
- black --diff --check src/ > black.diff
after_script:
- black-codeclimate black.diff > black_report.json
artifacts:
reports:
codequality: black_report.json
when: always
This will upload the black_report.json
as a GitLab Code Quality artifact. The lines that would be reformatted by black
will show up as a merge request widget.
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
File details
Details for the file black_codeclimate-1.0.3.tar.gz
.
File metadata
- Download URL: black_codeclimate-1.0.3.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cccba9928561502349e5b6c2d6f69b9c3cdd2f8a54864068a4b281c432e5055 |
|
MD5 | 69c202b61b711d2135bdc348369c41d4 |
|
BLAKE2b-256 | 7a1a453564deb8a0849d9e9a02f79b3a11a37c9c82eae20837b23426dd942a0d |
File details
Details for the file black_codeclimate-1.0.3-py3-none-any.whl
.
File metadata
- Download URL: black_codeclimate-1.0.3-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d99caf76f4c53d4e0ec513f6bc2cf58cca7c977cef36bf57e8d5143b6aee7521 |
|
MD5 | d63557d20ba6e94a33f0cb459b7e621c |
|
BLAKE2b-256 | 18d93eb2af0c8cf3e5020e894cf684f9f38b0ee592ff96b876b38c24be736935 |