RedCoffee is a command-line tool designed to manage SonarQube reports easily. It allows you to generate PDF reports from SonarQube analysis data. The project mainly targets SonarQube Community Edition since it lacks the default capability to export PDF reports.
To install RedCoffee, you can use pip. First, ensure you have Python and pip installed on your system. Then, you can install RedCoffee directly from PyPI using the following command:
pip install redcoffeeThe SonarQube analysis for the project should already have been completed.
| Directory | Usage |
|---|---|
.github/workflows |
Github Action Files. i) trigger-test.yaml - To Trigger Unit Tests on every commit. ii) deploy-mkdocs.yaml - To trigger deployment of mkdocs when something is merged to main / master branch. |
integrations |
Contains 3rd Party Integrations i) IPInfo - To get the user's GeoLocation Details ii) Sentry - For error analysis and logs |
core |
The brain of the repository. The control will ultimately land up here. i) utils - Core Utils. Utilities essential for the core functionality to be up and running. ii) analyser.py - Most of the SonarQube API Calls being made in this file. |
reports |
Controls the stuff related to look and feel of the generated reports. i) templating.py - Code containing the structure of the report. ii) utils - Code / Utility functions essential for the report templating to be up and running. |
utils |
General Utility Functions. |
tests |
Contains the Unit Tests. |
ascii_art |
Contains the logic for the Welcome Banner. |
| Files | Usage |
|---|---|
redcoffee.py |
The entrypoint of the project |
requirements.txt |
Includes all necessary libraries required to keep this project up and running |
docker-compse.yml |
Brining up the docker containers if someones wants to test out things locally |
wiremock-using-docker.sh |
Required for Trigger the unit test cases |
Please note that the project has not been dockerised yet. Hence, it does not contain a DockerFile. However, please ensure that you have Docker installed on your system as we will require the same to have few containers up and running.
To setup RedCoffee locally on your machine, please follow the below steps
-
In your terminal, please run the following command :
pip install -r requirements.txt. This will ensure all the libraries are installed in your system which is essential for the project to be up and running. -
Next, please proceed to run the following docker command :
docker compose -f docker-compose.yml up. This will ensure you have the required Infra up and running for the project to work successfully. Required Infra over here meansSonarQube Community Editionand thePostgres DB. -
The configured username and password for the database can be found out in the docker compose file.
-
Please procced to navigate to
localhost:9000as this is the address where your SonarQube instance is up and running ( unless you have changed the ports ) . It will ask you for the login. Please enter the username asadminand password asadmin. It will prompt you to re-enter a new password. Please set up a password of your choice. -
Please click on your profile icon ( right most corner ) and click on the Account Section. Navigate to the Security section. Please procced to generate a SonarQube User Token. Please remember to save this token somewhere as you won't be able to see it later.
Please note that due to the unavailability of IPInfo Access Key and Sentry DSN URL on your local system, the calls for these APIs will fail. However, this does not block the execution.
Please run the following command to generate the PDF Report
redcoffee generatepdf --host=${YOUR_SONARQUBE_HOST_NAME} --project=${SONARQUBE_PROJECT_KEY} --path=${PATH WHERE PDF FILE IS TO BE STORED} --token=${SONARQUBE_USER_TOKEN}Please visit the Github Page for this project to stay updated with the latest changes - Github Page Documentation for RedCoffee
Updates as of June 29,2025 - v2.16
2 new commands have been added
redcoffee support- If you encounter a bug or you feel RedCoffee is not working as expected or you want to raise a new feature request,redcoffee supportcommand will guide on how to reach out to the maintener of this project.
redcoffee diagnose --host={host_name} --token={sonarqube_usertoken}- This is the basic healthcheck / sanity command. This helps you to diagnose if the required infra / configurations required for RedCoffee to be up and running are working fine or not. In case, you see something is failing in this command, I would please request to cross check the parameters being supplied. In case, it is still failing, please use theredcoffee supportcommand to raise this issue to the maintener of this project
- Ability to email the report , right from the generate command - Users will be able to email the report to the stakeholders right from the generate command. A new flag would be added for the same.
- Support for Jenkins - While Github Actions is already supported by RedCoffee, support for Jekins was a long due. The next version should have the support for Jenkins available.

