What are the embedded linters?
Within Themis are installed a set of open source linters. Themis has the capacity, for your source code repositories, to take charge of the analysis of code every commit. These linters are configurable directly in Themis, but may also use the configuration files present on your repository.
You may use several linters on your source. For a Java project, you may thus perform PMD and Checkstyle on your code, to take advantage of the two tools.
The advantage of this mode is the simplicity of execution and the delegation of the work of analysis to Themis. It is in particular relevant when you haven't used linters so far.
This mode of operation is tailored to the standard configurations of the linters. Indeed, although some additional modules may be installed in Themis (see their respective documentation for that), Themis will not install dynamically third modules not present in its system. Thus, if you already have configured a linter with several third modules non-installed in Themis, this embedded mode is not appropriate. It will have to rather switch to the mailing of files via the API of Themis.
Configure embedded linters for a source
The embedded linters are pre-installed in Themis. To add one or several embedded linters to a source:
- Go to the Administration part, then Projects, and finally identify the involved source.
- Open the plugins linked with this source
- Click on Add a Plugin.
- Select the "Technical debt" practice
- In the "Type of Plugin" part, sélection "Embedded linters" :
- Indicate the date from which the commits will be analyzed. Ex: If you indicate 01/01/2018, every commits that take place after this date will be analyzed.
You will get a screen similar to this one:
Click then on Validate to complete the operation.
You may now add different linters via the addition of sub-plugins. On the line matching the plugin, open the listing of the sub-plugins:
Click then on the Add a sub-plugin for Embedded linters button. Add then one of the linters among those supported by Themis.