Python module for creating Code Insight Reports based on llvm-based diagnostics output.
$ pip install bitbucket-code-insight-reporter
Example LLVM output:
test.cpp:6:5: warning: use a trailing return type for this function [modernize-use-trailing-return-type]
int main() {
~~~ ^
auto -> int
test.cpp:11:9: warning: the 'empty' method should be used to check for emptiness instead of comparing to an empty object [readability-container-size-empty]
if (hello + world == "")
^~~~~~~~~~~~~~~~~~~
hello + world.empty()
../include/c++/v1/string:990:10: note: method 'basic_string'::empty() defined here
bool empty() const _NOEXCEPT {return size() == 0;}
^
test.cpp:11:29: warning: statement should be inside braces [readability-braces-around-statements]
if (hello + world == "")
^
{
test.cpp:15:9: warning: use std::make_unique instead [modernize-make-unique]
ptr.reset(new std::string{ "xyz" });
~^~~~~ ~~~~~~~~~~~~~~~~ ~
= std::make_unique<std::string>
test.cpp:16:15: warning: use nullptr [modernize-use-nullptr]
ptr.reset(NULL);
^~~~
nullptr
test.cpp:19:5: warning: use range-based for loop instead [modernize-loop-convert]
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(int & it : vec)
test.cpp:19:10: warning: use auto when declaring iterators [modernize-use-auto]
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)
^
note: this fix will not be applied because it overlaps with another fix
test.cpp:19:77: warning: statement should be inside braces [readability-braces-around-statements]
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)
^
{
Example execution
code_insight_reporter generate --id clang_format --title "Clang Format" --details "Overview of all warnings reported by Clang Format" --reporter "Bob Builder" --llvm-logging ./path/to/logging.out --output ./path/to/report.json
code_insight_reporter report--bitbucket-server https://bitbucket.url.com --username bob --password builder --bitbucket-project BOB --repository-slug builder --commit-hash 1234567890 --report-file ./path/to/report.json
Usage: code_insight_reporter [OPTIONS] COMMAND [ARGS]...
Options:
--verbose Enable verbose output
--help Show this message and exit.
Commands:
generate
report
Usage: code_insight_reporter report [OPTIONS]
Options:
--bitbucket-server TEXT URL for the BitBucket server [required]
--username TEXT Username associated with BitBucket [required]
--password TEXT Password associated with BitBucket [required]
--bitbucket-project TEXT BitBucket project name [required]
--repository-slug TEXT BitBucket repository slug name [required]
--commit-hash TEXT Commit Hash to associate the Code Insights Report
with [required]
--report-file FILENAME Code Insights Report identifier [required]
--help Show this message and exit.
Usage: code_insight_reporter generate [OPTIONS]
Options:
--id TEXT Unique identifier for the report [required]
--title TEXT Humand readable title for the Code Insight report
[required]
--details TEXT Additional details to share withing the Code Insight
report
--reporter TEXT Reference to the reporter of the Code Insight Report
--link TEXT Link towards an external report
--logo-url TEXT Link towards an image to be shown in the Code Insight
report
--workspace TEXT Absolute path towards the root of the repository. This
will be stripped from the file paths in the LLVM
logging.
--llvm-logging TEXT Path pointing to logging file containing llvm
diagnostics messages [required]
--output FILENAME Path towards the output file [required]
--help Show this message and exit.