- [Website](https://www.sonarqube.org)
- [Download](https://www.sonarqube.org/downloads/)
-- [Documentation](https://docs.sonarqube.org)
+- [Documentation](https://docs.sonarsource.com/sonarqube)
- [Twitter](https://twitter.com/SonarQube)
- [SonarSource](https://www.sonarsource.com), author of SonarQube
- [Issue tracking](https://jira.sonarsource.com/browse/SONAR/), read-only. Only SonarSourcers can create tickets.
## Have Question or Feedback?
-For support questions ("How do I?", "I got this error, why?", ...), please first read the [documentation](https://docs.sonarqube.org) and then head to the [SonarSource Community](https://community.sonarsource.com/c/help/sq/10). The answer to your question has likely already been answered! 🤓
+For support questions ("How do I?", "I got this error, why?", ...), please first read the [documentation](https://docs.sonarsource.com/sonarqube) and then head to the [SonarSource Community](https://community.sonarsource.com/c/help/sq/10). The answer to your question has likely already been answered! 🤓
Be aware that this forum is a community, so the standard pleasantries ("Hi", "Thanks", ...) are expected. And if you don't get an answer to your thread, you should sit on your hands for at least three days before bumping it. Operators are not standing by. 😄
private static final Logger LOG = LoggerFactory.getLogger(LogMessageIfSonarScimEnabledPresentProperty.class);
public static final String SONAR_SCIM_ENABLED = "sonar.scim.enabled";
- private static final String SCIM_DOC_URL = "https://docs.sonarqube.org/10.1/instance-administration/authentication/saml/scim/overview/";
+ private static final String SCIM_DOC_URL = "https://docs.sonarsource.com/sonarqube/10.1/instance-administration/authentication/saml/scim/overview/";
public LogMessageIfSonarScimEnabledPresentProperty(Database db) {
super(db);
.containsExactly("'" + SONAR_SCIM_ENABLED + "' property is defined but not read anymore. Please read the upgrade notes" +
" for the instruction to upgrade. User provisioning is deactivated until reactivated from the SonarQube" +
" Administration Interface (\"General->Authentication\"). "
- + "See documentation: https://docs.sonarqube.org/10.1/instance-administration/authentication/saml/scim/overview/");
+ + "See documentation: https://docs.sonarsource.com/sonarqube/10.1/instance-administration/authentication/saml/scim/overview/");
}
@Test
expect(await screen.findByRole('link')).toHaveAttribute(
'href',
- 'https://docs.sonarqube.org/10.0/land'
+ 'https://docs.sonarsource.com/sonarqube/10.0/land'
);
});
expect(await screen.findByRole('link')).toHaveAttribute(
'href',
- 'https://docs.sonarqube.org/latest/land'
+ 'https://docs.sonarsource.com/sonarqube/latest/land'
);
});
qualifiers: [],
settings: {},
version: '',
- documentationUrl: 'https://docs.sonarqube.org/latest',
+ documentationUrl: 'https://docs.sonarsource.com/sonarqube/latest',
};
export const AppStateContext = React.createContext<AppState>(DEFAULT_APP_STATE);
<AppStateContextProvider
appState={
{
- "documentationUrl": "https://docs.sonarqube.org/10.0",
+ "documentationUrl": "https://docs.sonarsource.com/sonarqube/10.0",
"edition": "community",
"productionDatabase": true,
"qualifiers": [
id="indexation.page_unavailable.description.additional_information"
values={{
link: (
- <Link to="https://docs.sonarqube.org/latest/instance-administration/reindexing/">
+ <Link to="https://docs.sonarsource.com/sonarqube/latest/instance-administration/reindexing/">
{translate('learn_more')}
</Link>
),
<IndexationContextProvider
appState={
{
- "documentationUrl": "https://docs.sonarqube.org/10.0",
+ "documentationUrl": "https://docs.sonarsource.com/sonarqube/10.0",
"edition": "community",
"needIssueSync": true,
"productionDatabase": true,
values={
{
"link": <StandoutLink
- to="https://docs.sonarqube.org/latest/instance-administration/reindexing/"
+ to="https://docs.sonarsource.com/sonarqube/latest/instance-administration/reindexing/"
>
learn_more
</StandoutLink>,
id="indexation.filters_unavailable"
values={{
link: (
- <Link to="https://docs.sonarqube.org/latest/instance-administration/reindexing/">
+ <Link to="https://docs.sonarsource.com/sonarqube/latest/instance-administration/reindexing/">
{translate('learn_more')}
</Link>
),
</span>
<a
class="sw-ml-1"
- href="https://docs.sonarqube.org/latest/instance-administration/reindexing/"
+ href="https://docs.sonarsource.com/sonarqube/latest/instance-administration/reindexing/"
rel="noopener noreferrer"
target="_blank"
>
key: 'sonar.cobol.aucobol.preprocessor.directives.default',
name: 'AcuCobol preprocessor default directives',
description:
- 'This property allows to set preprocessor directives used to compile every COBOL program. See the \'ACUCOBOL-GT Source Code Control directives\' section in the <a target="_blank" href="http://docs.sonarqube.org/display/PLUG/COBOL+Plugin+Advanced+Configuration">documentation of the plugin</a>.',
+ 'This property allows to set preprocessor directives used to compile every COBOL program. See the \'ACUCOBOL-GT Source Code Control directives\' section in the <a target="_blank" href="http://docs.sonarsource.com/sonarqube/display/PLUG/COBOL+Plugin+Advanced+Configuration">documentation of the plugin</a>.',
category: 'COBOL',
subCategory: 'Preprocessor',
options: [],
qualifiers: ['TRK'],
settings: {},
version: '1.0',
- documentationUrl: 'https://docs.sonarqube.org/10.0',
+ documentationUrl: 'https://docs.sonarsource.com/sonarqube/10.0',
...overrides,
};
}
}
String msg = "The database must be manually upgraded. Please backup the database and browse /setup. "
- + "For more information: https://docs.sonarqube.org/latest/setup/upgrading";
+ + "For more information: https://docs.sonarsource.com/sonarqube/latest/setup/upgrading";
LoggerFactory.getLogger(DatabaseServerCompatibility.class).warn(msg);
Logger logger = LoggerFactory.getLogger(STARTUP_LOGGER_NAME);
logger.warn(HIGHLIGHTER);
assertThat(logTester.logs()).hasSize(4);
assertThat(logTester.logs(Level.WARN)).contains(
"The database must be manually upgraded. Please backup the database and browse /setup. "
- + "For more information: https://docs.sonarqube.org/latest/setup/upgrading",
+ + "For more information: https://docs.sonarsource.com/sonarqube/latest/setup/upgrading",
"################################################################################",
"The database must be manually upgraded. Please backup the database and browse /setup. "
- + "For more information: https://docs.sonarqube.org/latest/setup/upgrading",
+ + "For more information: https://docs.sonarsource.com/sonarqube/latest/setup/upgrading",
"################################################################################");
}
@Before
public void setup() {
- when(documentationLinkGenerator.getDocumentationLink(any())).thenReturn("https://docs.sonarqube.org/9.9/project-administration/defining-new-code/");
+ when(documentationLinkGenerator.getDocumentationLink(any())).thenReturn("https://docs.sonarsource.com/sonarqube/9.9/project-administration/defining-new-code/");
ws = new WsActionTester(new ListAction(dbClient, userSession, componentFinder, dao, documentationLinkGenerator));
}
WebService.Action definition = ws.getDef();
- assertThat(definition.description()).contains("https://docs.sonarqube.org/9.9/project-administration/defining-new-code/");
+ assertThat(definition.description()).contains("https://docs.sonarsource.com/sonarqube/9.9/project-administration/defining-new-code/");
assertThat(definition.key()).isEqualTo("list");
assertThat(definition.isInternal()).isFalse();
@Before
public void setup() {
- when(documentationLinkGenerator.getDocumentationLink(any())).thenReturn("https://docs.sonarqube.org/9.9/project-administration/defining-new-code/");
+ when(documentationLinkGenerator.getDocumentationLink(any())).thenReturn("https://docs.sonarsource.com/sonarqube/9.9/project-administration/defining-new-code/");
ws = new WsActionTester(new SetAction(dbClient, userSession, componentFinder, editionProvider, dao, documentationLinkGenerator));
}
public void test_definition() {
WebService.Action definition = ws.getDef();
- assertThat(definition.description()).contains("https://docs.sonarqube.org/9.9/project-administration/defining-new-code/");
+ assertThat(definition.description()).contains("https://docs.sonarsource.com/sonarqube/9.9/project-administration/defining-new-code/");
assertThat(definition.key()).isEqualTo("set");
assertThat(definition.isInternal()).isFalse();
@Before
public void setup() {
- when(documentationLinkGenerator.getDocumentationLink(any())).thenReturn("https://docs.sonarqube.org/latest/project-administration/defining-new-code/");
+ when(documentationLinkGenerator.getDocumentationLink(any())).thenReturn("https://docs.sonarsource.com/sonarqube/latest/project-administration/defining-new-code/");
ws = new WsActionTester(new ShowAction(dbClient, userSession, componentFinder, dao, documentationLinkGenerator));
}
public void test_definition() {
WebService.Action definition = ws.getDef();
- assertThat(definition.description()).contains("https://docs.sonarqube.org/latest/project-administration/defining-new-code/");
+ assertThat(definition.description()).contains("https://docs.sonarsource.com/sonarqube/latest/project-administration/defining-new-code/");
assertThat(definition.key()).isEqualTo("show");
assertThat(definition.isInternal()).isFalse();
@Before
public void setup(){
- when(documentationLinkGenerator.getDocumentationLink(any())).thenReturn("https://docs.sonarqube.org/9.9/project-administration/defining-new-code/");
+ when(documentationLinkGenerator.getDocumentationLink(any())).thenReturn("https://docs.sonarsource.com/sonarqube/9.9/project-administration/defining-new-code/");
ws = new WsActionTester(new UnsetAction(dbClient, userSession, componentFinder, editionProvider, dao, documentationLinkGenerator));
}
public void test_definition() {
WebService.Action definition = ws.getDef();
- assertThat(definition.description()).contains("https://docs.sonarqube.org/9.9/project-administration/defining-new-code/");
+ assertThat(definition.description()).contains("https://docs.sonarsource.com/sonarqube/9.9/project-administration/defining-new-code/");
assertThat(definition.key()).isEqualTo("unset");
assertThat(definition.isInternal()).isFalse();
"warningCount": 2,
"warnings": [
"The properties \u0027sonar.login\u0027 and \u0027sonar.password\u0027 are deprecated and will be removed in the future. Please pass a token with the \u0027sonar.token\u0027 property instead.",
- "Missing blame information for 2 files. This may lead to some features not working correctly. Please check the analysis logs and refer to \u003ca href\u003d\"https://docs.sonarqube.org/latest/analyzing-source-code/scm-integration/\" rel\u003d\"noopener noreferrer\" target\u003d\"_blank\"\u003ethe documentation\u003c/a\u003e."
+ "Missing blame information for 2 files. This may lead to some features not working correctly. Please check the analysis logs and refer to \u003ca href\u003d\"https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scm-integration/\" rel\u003d\"noopener noreferrer\" target\u003d\"_blank\"\u003ethe documentation\u003c/a\u003e."
]
},
{
"warningCount": 2,
"warnings": [
"The properties 'sonar.login' and 'sonar.password' are deprecated and will be removed in the future. Please pass a token with the 'sonar.token' property instead.",
- "Missing blame information for 2 files. This may lead to some features not working correctly. Please check the analysis logs and refer to <a href=\"https://docs.sonarqube.org/latest/analyzing-source-code/scm-integration/\" rel=\"noopener noreferrer\" target=\"_blank\">the documentation</a>."
+ "Missing blame information for 2 files. This may lead to some features not working correctly. Please check the analysis logs and refer to <a href=\"https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scm-integration/\" rel=\"noopener noreferrer\" target=\"_blank\">the documentation</a>."
]
}
}
@Test
public void call_shouldReturnDocumentationUrl() {
init();
- String url = "https://docs.sonarqube.org/10.0";
+ String url = "https://docs.sonarsource.com/sonarqube/10.0";
when(documentationLinkGenerator.getDocumentationLink(null)).thenReturn(url);
String json = call();
// if AutoDbMigration kicked in or no DB migration was required, startup can be resumed in another thread
if (dbRequiresMigration()) {
- LOGGER.info("Database needs to be migrated. Please refer to https://docs.sonarqube.org/latest/setup/upgrading");
+ LOGGER.info("Database needs to be migrated. Please refer to https://docs.sonarsource.com/sonarqube/latest/setup/upgrading");
} else {
this.autoStarter = createAutoStarter();
# - be overridden by environment variables. The name of the corresponding environment variable is the
# upper-cased name of the property where all the dot ('.') and dash ('-') characters are replaced by
# underscores ('_'). For example, to override 'sonar.web.systemPasscode' use 'SONAR_WEB_SYSTEMPASSCODE'.
-# - be encrypted. See https://docs.sonarqube.org/latest/instance-administration/security/#settings-encryption
+# - be encrypted. See https://docs.sonarsource.com/sonarqube/latest/instance-administration/security/#settings-encryption
#--------------------------------------------------------------------------------------------------
# DATABASE
-Please copy an Oracle JDBC driver in this directory. See compatible versions at https://docs.sonarqube.org/latest/requirements/prerequisites-and-overview/.
+Please copy an Oracle JDBC driver in this directory. See compatible versions at https://docs.sonarsource.com/sonarqube/latest/requirements/prerequisites-and-overview/.
Note that only a single JAR file is accepted. A failure is raised at startup if multiple JAR files are available.
.build(),
PropertyDefinition.builder(DOCUMENTATION_BASE_URL)
.name("Base URL of the documentation")
- .description("Base URL to be used in SonarQube documentation links, such as <i>https://docs.sonarqube.org/</i>")
+ .description("Base URL to be used in SonarQube documentation links, such as <i>https://docs.sonarsource.com/sonarqube/</i>")
.defaultValue(DefaultDocumentationLinkGenerator.DOCUMENTATION_PUBLIC_URL)
.hidden()
.type(STRING)
import org.sonar.core.platform.SonarQubeVersion;
public class DefaultDocumentationLinkGenerator implements DocumentationLinkGenerator {
- public static final String DOCUMENTATION_PUBLIC_URL = "https://docs.sonarqube.org/";
+ public static final String DOCUMENTATION_PUBLIC_URL = "https://docs.sonarsource.com/sonarqube/";
private final String documentationBaseUrl;
/**
* Markdown interprets text in brackets followed by text in parentheses to generate documented links.
*
- * E.g., the input [See documentation](http://docs.sonarqube.org/display/SONAR) will produce
- * {@literal<a href="http://docs.sonarqube.org/display/SONAR">}See documentation{@literal</a>}
+ * E.g., the input [See documentation](http://docs.sonarsource.com/sonarqube/display/SONAR) will produce
+ * {@literal<a href="http://docs.sonarsource.com/sonarqube/display/SONAR">}See documentation{@literal</a>}
*/
class HtmlLinkChannel extends RegexChannel<MarkdownOutput> {
@Test
public void shouldDecorateDocumentedLink() {
- assertThat(Markdown.convertToHtml("For more details, please [check online documentation](http://docs.sonarqube.org/display/SONAR)."))
- .isEqualTo("For more details, please <a href=\"http://docs.sonarqube.org/display/SONAR\" target=\"_blank\" rel=\"noopener noreferrer\">check online documentation</a>.");
+ assertThat(Markdown.convertToHtml("For more details, please [check online documentation](http://docs.sonarsource.com/sonarqube/display/SONAR)."))
+ .isEqualTo("For more details, please <a href=\"http://docs.sonarsource.com/sonarqube/display/SONAR\" target=\"_blank\" rel=\"noopener noreferrer\">check online documentation</a>.");
}
ActiveList activeList = actives.get(r.getKey());
if (activeList == null) {
throw MessageException.of("Elasticsearch indices have become inconsistent. Consider re-indexing. " +
- "Check documentation for more information https://docs.sonarqube.org/latest/setup/troubleshooting");
+ "Check documentation for more information https://docs.sonarsource.com/sonarqube/latest/setup/troubleshooting");
}
Active active = activeList.getActiveList(0);
assertThatThrownBy(() -> loader.load("c+-test_c+-values-17445"))
.isInstanceOf(MessageException.class)
.hasMessage("Elasticsearch indices have become inconsistent. Consider re-indexing. " +
- "Check documentation for more information https://docs.sonarqube.org/latest/setup/troubleshooting");
+ "Check documentation for more information https://docs.sonarsource.com/sonarqube/latest/setup/troubleshooting");
}
private String urlOfPage(int page) {