Introducing Sonargit, an automated bot scraper engineered to streamline data extraction from GitHub pull requests and capture dynamic SonarQube screenshots. Built specificaly for Catalyst engineers. Increase productivity with a bot that effortlessly extracts, analyzes, and visualizes KPI data.
Node 18.0 and later.
npm install -g sonargit
Execute with the desired start date:
sonargit -s 10/10/2023
Execute with date range:
sonargit -s 10/10/2023 -e 10/12/2023
Execute with custom output:
sonargit -s 10/10/2023 -o my_output.csv
Log files are generated in the ~/Users/<username>/sonargit
directory.
Sonargit will fetches closed pull requests from a GitHub repository within a specified date range and meeting certain criteria (e.g., merged into a specific branch, closed by a specific author). The GitHub API is utilized to retrieve information about pull requests, including the total count and an array of items.
The fetchIssueComments
function fetches comments on a GitHub pull request, extracts coverage percentage and SonarQube URL from the latest comment, and returns the result as an object.
The extractSonarQubeUrl
function uses a regular expression to extract the SonarQube URL from a given text.
Puppeteer is used to launch a headless browser and navigate to a SonarQube login page. It then logs in with user provided credentials. After logging in, it iterates through an array of pull requests and takes a screenshot of the corresponding SonarQube page.
The sequentialProcess
function used to handle an array of pull requests in a sequential execution to avoid exceeding GitHub rate limits and prevent high memory usage when using Puppeteer.
The moment
library is used for date and time formatting.
Sonargit requires a GitHub personal access token (token) for making authenticated requests to the GitHub API.
Sonargit Scraper is licensed under the MIT License.
For information on contributing to Sonargit Scraper, please refer to the Contributing Guidelines.
For support and bug reporting, please open an issue on the issue tracker.