Currently ALM configuration can be done at instance level and can be overridden at project level with the same level of configuration. It's quite confusing for the user and may be source of error.
At instance level
- A SonarQube instance must be able to have the 3 different providers simultaneously : GitHub Enterprise, TFS and BitBucketServer. Example: for companies which host java code and .net code, they have 2 ALMs to connect to.
- ALM configuration (parameters that are global to all projects of an ALM) should be done at instance level (ex: the GitHub Enterprise url instance)
- The administrator should be able to configure independently the different ALMs, and each ALM configuration parameters should be gathered together (all related to GitHub in the same location, all related to Bitbucket Server in the same location, etc...)
At project level
- Administrator only chooses the ALM for this project
- Administrator configure only properties related to the project : ex: for GitHub Enterprise, the repository url