Version : Developer Edition Version 8.1 (build 31237)
Feature: Using GitHub Pull request decoration
I have hosted sonarqube Developer Edition Version 8.1 on a internal server on AWS.
I am using github PR decoration feature and I get the analysis results on github checks dashboard.
The problem is that icons/images in github checks dashboard are broken as gihub is not able to reach my internal server.
For Ex: my domain is https://sonarqube.myinternalsite.com
Github is trying to load image from this URL ‘https://sonarqube.myinternalsite.com/static/developer-server/checks/QualityGateBadge/passed.svg’.
But this image will not be loaded as this url can be accessed only through out internal network.
I want to know is there any ways I can change URL path for static images
If I can change the path for this then I can host these icons or images in public available host and access only these images in that URL.
Note: I want to change URL or path only for static images, serverBaseURL should not change.
The Server Base URL of SonarQube Server is configured on the Administration section. As you noticed, it will be used for a neat integration with GitHub. Not just to retrieve these images, but also for the links back to the issues and quality metrics. Are you using GitHub.com or on-premise GitHub Enterprise? If I suspect correctly and you use GitHub.com, you may have to review your setup.
There is currently no way to customise the Server Base URL exclusively for the GitHub integration: you could make images appear but links would still be unreachable. You have several options here and they mostly fall on the AWS world, not on SonarQube. I am not an expert, but I can briefly think of the following:
First: if it is an option, setup a secured access from the internet to your SonarQube Server in AWS.
Second, if above is not an option, why not using GitHub Enterprise on premises if you already have the policy of placing SonarQube Server on a private subnet? To use GitHub.com, a public cloud-based service online, with a SonarQube instance which is only made accessible through an internal network does not seem like a good recipe for proper/easy integration.
And last: the cumbersome, complex and the approach I do not recommend: look into setting up a Load Balancer in AWS for path-based routing, or if you use CloudFront, use path patterns to direct requests containing the /static/ path to a different origin. Still, it must be possible to resolve the domain name to a reachable Load Balancer or CloudFront service so this would involve additional tweaking and billable services on AWS!
Hope the above helps!