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
Hashes for black_codeclimate-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d99caf76f4c53d4e0ec513f6bc2cf58cca7c977cef36bf57e8d5143b6aee7521 |
|
MD5 | d63557d20ba6e94a33f0cb459b7e621c |
|
BLAKE2b-256 | 18d93eb2af0c8cf3e5020e894cf684f9f38b0ee592ff96b876b38c24be736935 |