# ########################################################################################## # # Customize file classifications. # # # Results from files under any classifier will be excluded from LGTM # # # statistics. # # ########################################################################################## # # ########################################################################################## # # Use the `path_classifiers` block to define changes to the default classification of # # # files. # # ########################################################################################## # path_classifiers: # docs: # # Identify the top-level file called `generate_javadoc.py` as documentation-related. # - generate_javadoc.py # test: # # Override LGTM’s default classification of test files by excluding all files. # - exclude: / # # Classify all files in the top-level directories test/ and testsuites/ as test code. # - test # - testsuites # # Classify all files with suffix `.test` as test code. # # Note: use only forward slash / as a path separator. # # Use ** to indicate an arbitrary parent path. # # Use * to indicate any sequence of characters excluding /. # # Always enclose the expression in double quotes if it includes *. # - "**/*.test" # # Refine the classifications above by excluding files in test/util/. # - exclude: test/util # # The default behavior is to tag all files created during the # # build as `generated`. Results are hidden for generated code. You can tag # # further files as being generated by adding them to the `generated` section. # generated: # # Exclude all `*.c` files under the `ui/` directory from classification as # # generated code. # # By default, all files not checked into the repository are considered to be # # 'generated'. # - exclude: ui/**.c # # The default behavior is to tag library code as `library`. Results are hidden # # for library code. You can tag further files as being library code by adding them # # to the `library` section. library: - "mitogen/compat" # # The default behavior is to tag template files as `template`. Results are hidden # # for template files. You can tag further files as being template files by adding # # them to the `template` section. # template: # # Define your own category, for example: 'some_custom_category'. # some_custom_category: # # Classify all files in the top-level directory tools/ (or the top-level file # # called tools). # - tools # # ######################################################################################### # # Use the `queries` block to change the default display of query results. # # ######################################################################################### # queries: # Mitogen 2.4 compatibility trips this query everywhere, so just disable it - exclude: py/unreachable-statement - exclude: py/should-use-with # mitogen.core.b() trips this query everywhere, so just disable it - exclude: py/import-and-import-from # # Specifically hide the results of two queries. # - exclude: cpp/use-of-goto # - exclude: java/equals-on-unrelated-types # # Hide the results of all queries. # - exclude: "*" # # Refine by including the `java/command-line-injection` query. # - include: java/command-line-injection # # Include all queries tagged ‘security’ and ‘correctness', and with a severity of # # ‘error’. # - include: # tags: # - "security" # - "correctness" # severity: "error" # # ######################################################################################### # # Define changes to the default code extraction process. # # # Each block configures the extraction of a single language, and modifies actions in a # # # named step. Every named step includes automatic default actions, # # # except for the ‘prepare’ step. The steps are performed in the following sequence: # # # prepare # # # after_prepare # # # configure (C/C++ only) # # # python_setup (Python only) # # # before_index # # # index # ########################################################################################### # # ######################################################################################### # # Environment variables available to the steps: # # ######################################################################################### # # # LGTM_SRC # # The root of the source tree. # # LGTM_WORKSPACE # # An existing (initially empty) folder outside the source tree. # # Used for temporary download and setup commands. # # ######################################################################################### # # Use the extraction block to define changes to the default code extraction process # # # for one or more languages. The settings for each language are defined in a child # # # block, with one or more steps. # # ######################################################################################### # # extraction: # # Define settings for C/C++ analysis # ##################################### # cpp: # # The `prepare` step exists for customization on LGTM.com only. # prepare: # # The `packages` section is valid for LGTM.com only. It names Ubuntu packages to # # be installed. # packages: # - libxml2-dev # - libxslt1-dev # # Add an `after-prepare` step if you need to run commands after the prepare step. # # Each command should be listed on a separate line. # # This step is useful for C/C++ analysis where you want to prepare the environment # # for the `configure` step without changing the default behavior for that step. # after_prepare: # - mkdir -p $LGTM_WORKSPACE/latest-gcc-symlinks # - ln -s /usr/bin/g++-6 $LGTM_WORKSPACE/latest-gcc-symlinks/g++ # - ln -s /usr/bin/gcc-6 $LGTM_WORKSPACE/latest-gcc-symlinks/gcc # - export PATH=$LGTM_WORKSPACE/latest-gcc-symlinks:$PATH # - export GNU_MAKE=make # - export GIT=true # # The `configure` step generates build configuration files which the `index` step # # then uses to build the codebase. # configure: # command: # - ./prepare_deps # # Optional step. You should add a `before_index` step if you need to run commands # # before the `index` step. # before_index: # - export BOOST_DIR=$LGTM_SRC/boost # - export GTEST_DIR=$LGTM_SRC/googletest # - export HUNSPELL_DIR=$LGTM_SRC/hunspell # - export CRYPTOPP_DIR=$LGTM_SRC/cryptopp # # The `index` step builds the code and extracts information during the build # # process. # index: # # Override the autobuild process by specifying a list of custom build commands # # to use instead. # build_command: # - $GNU_MAKE -j2 -s # # Specify that all project or solution files should be used for extraction. # # Default: false. # all_solutions: true # # Specify a list of one or more project or solution files for extraction. # # Default: LGTM chooses the file closest to the root of the repository (this may # # fail if there are multiple candidates). # solution: # - myProject.sln # # Specify MSBuild settings # msbuild: # # Specify a list of additional arguments to MSBuild. Default: empty. # arguments: /p:Platform=x64 /p:Configuration=Release # # Specify the MSBuild configuration to use, for example, debug or release. # # Default: read from the solution file or files. # configuration: # # Specify the platform to target, for example: x86, x64, or Any CPU. # # Default: read from the solution file or files. # platform: # # Specify the MSBuild target. Default: rebuild. # target: # # Specify whether or not to perform a NuGet restore for extraction. Default: true. # nuget_restore: false # # Specify a version of Microsoft Visual Studio to use for MSBuild or any custom # # build commands (build_command). For example: # # 10 for Visual Studio 2010 # # 12 for Visual Studio 2012 # # 14 for Visual Studio 2015 # # 15 for Visual Studio 2017 # # Default: read from project files. # vstools_version: 10 # # # Define settings for C# analysis # ################################## # csharp: # # The `prepare` step exists for customization on LGTM.com only. # prepare: # # Add an `after-prepare` step if you need to run commands after the `prepare` step. # # Each command should be listed on a separate line. # after_prepare: # - export PATH=$LGTM_WORKSPACE/tools:$PATH # # The `index` step builds the code and extracts information during the build # # process. # index: # # Specify that all project or solution files should be used for extraction. # # Default: false. # all_solutions: true # # Specify a list of one or more project or solution files for extraction. # # Default: LGTM chooses the file closest to the root of the repository (this may # # fail if there are multiple candidates). # solution: # - myProject.sln # # Override the autobuild process by specifying a list of custom build commands # # to use instead. # build_command: # # By default, LGTM analyzes the code by building it. You can override this, # # and tell LGTM not to build the code. Beware that this can lead # # to less accurate results. # buildless: true # # Specify .NET Core settings. # dotnet: # # Specify additional arguments to `dotnet build`. # # Default: empty. # arguments: # # Specify the version of .NET Core SDK to use. # # Default: The version installed on the build machine. # version: 2.1 # # Specify MSBuild settings. # msbuild: # # Specify a list of additional arguments to MSBuild. Default: empty. # arguments: /P:WarningLevel=2 # # Specify the MSBuild configuration to use, for example, debug or release. # # Default: read from the solution file or files. # configuration: release # # Specify the platform to target, for example: x86, x64, or Any CPU. # # Default: read from the solution file or files. # platform: x86 # # Specify the MSBuild target. Default: rebuild. # target: notest # # Specify whether or not to perform a NuGet restore for extraction. Default: true. # nuget_restore: false # # Specify a version of Microsoft Visual Studio to use for MSBuild or any custom # # build commands (build_command). For example: # # 10 for Visual Studio 2010 # # 12 for Visual Studio 2012 # # 14 for Visual Studio 2015 # # 15 for Visual Studio 2017 # # Default: read from project files # vstools_version: 10 # # Specify additional options for the extractor, # # for example --fast to perform a faster extraction that produces a smaller # # database. # extractor: # # # Define settings for COBOL analysis # ##################################### # cobol: # # The `prepare` step exists for customization on LGTM.com only. # prepare: # # Add an `after-prepare` step if you need to run commands after the prepare step. # # Each command should be listed on a separate line. # after_prepare: # - export PATH=$LGTM_WORKSPACE/tools:$PATH # index: # # Specify the source file format: fixed, free, or variable. # # Default: fixed. # format: "variable" # # Specify the number of spaces in a tab. Default: 4. # tab_length: 2 # # Specify whether preprocessing is applied before extraction or not. # # Default: true (preprocessing on). # preprocessing: false # # Specify file extensions that LGTM will identify as belonging to source files. # # Default: files with a .CBL, .cbl, .COB or .cob extension are considered # # source files. # source_globs: # - "**.cbl" # - "**.CBL" # - "**.cob" # - "**.cobol" # - "**.COB" # # Specify file extensions that LGTM will identify as belonging to library files. # # Default: files with a .CPY, .cpy, .COPY or .copy extension. # library_globs: # - "**.CPY" # - "**.COPY" # # # Define settings for Java analysis # #################################### # java: # # The `prepare` step exists for customization on LGTM.com only. # prepare: # # Add an `after-prepare` step if you need to run commands after the prepare step. # # Each command should be listed on a separate line. # after_prepare: # - export PATH=$LGTM_WORKSPACE/tools:$PATH # # The `index` step extracts information from the files in the codebase. # index: # # Specify Gradle settings. # gradle: # # Specify the required Gradle version. # # Default: determined automatically. # version: 4.4 # # Override the autobuild process by specifying a list of custom build commands # # to use instead. # build_command: ./compile-all.sh # # Specify the Java version required to build the project. # java_version: 11 # # Specify Maven settings. # maven: # # Specify the path (absolute or relative) of a Maven settings file to use. # # Default: Maven uses a settings file in the default location, if it exists. # settings_file: /opt/share/settings.xml # # Specify the path of a Maven toolchains file. # # Default: Maven uses a toolchains file in the default location, if it exists. # toolchains_file: /opt/share/toolchains.xml # # Specify the required Maven version. # # Default: the Maven version is determined automatically, where feasible. # version: 3.5.2 # # Specify how XML files should be extracted: # # ALL = extract all XML files. # # DEFAULT = only extract XML files named `AndroidManifest.xml`. # # DISABLED = do not extract any XML files. # xml_mode: ALL # # # Define settings for JavaScript analysis # ########################################## # javascript: # # The `prepare` step exists for customization on LGTM.com only. # prepare: # # Add an `after-prepare` step if you need to run commands after the prepare step. # # Each command should be listed on a separate line. # after_prepare: # - export PATH=$LGTM_WORKSPACE/tools:$PATH # # The `index` step extracts information from the files in the codebase. # index: # # Specify a list of files and folders to extract. # # Default: The project root directory. # include: # - src/js # # Specify a list of files and folders to exclude from extraction. # exclude: # - thirdparty/lib # - node_modules # # You can add additional file types for LGTM to extract, by mapping file # # extensions (including the leading dot) to file types. The usual # # include/exclude patterns apply, so, for example, `.jsm` files under # # `thirdparty/lib` and `node_modules` will not be extracted. # filetypes: # ".jsm": "js" # ".tmpl": "html" # # Specify a list of glob patterns to include/exclude files from extraction; this # # is applied on top of the include/exclude paths from above; patterns are # # processed in the same way as for path classifiers above. # # Default: include all files with known extensions (such as .js, .ts and .html), # # but exclude files ending in `-min.js` or `.min.js`. # filters: # # exclude any node_modules folders anywhere. # - exclude: "**/node_modules/*" # # exclude any *.ts files anywhere. # - exclude: "**/*.ts" # # but include *.ts files under src/js/typescript. # - include: "src/js/typescript/**/*.ts" # # Specify the type of project: module or script. # # Default: type is automatically detected. # source_type: module # # Specify how TypeScript files should be extracted: # # none = exclude all TypeScript files. # # basic = extract syntactic information from TypeScript files. # # full = extract syntactic and type information from TypeScript files. # # Default: full. # typescript: basic # # By default, LGTM doesn't extract any XML files. You can override this by # # using the `xml_mode` property and setting it to `all`. # xml_mode: all # # # Define settings for Python analysis # ###################################### # python: # # The `prepare` step exists for customization on LGTM.com only. # prepare: # # The `packages` section is valid for LGTM.com only. It names packages to # # be installed. # packages: libpng-dev # # This step is useful for Python analysis where you want to prepare the # # environment for the `python_setup` step without changing the default behavior # # for that step. # after_prepare: # - export PATH=$LGTM_WORKSPACE/tools:$PATH # # This sets up the Python interpreter and virtual environment, ready for the # # `index` step to extract the codebase. # python_setup: # # Specify packages that should NOT be installed despite being mentioned in the # # requirements.txt file. # # Default: no package marked for exclusion. # exclude_requirements: # - pywin32 # # Specify a list of pip packages to install. # # If any of these packages cannot be installed, the extraction will fail. # requirements: # - Pillow # # Specify a list of requirements text files to use to set up the environment, # # or false for none. Default: any requirements.txt, test-requirements.txt, # # and similarly named files identified in the codebase are used. # requirements_files: # - required-packages.txt # # Specify a setup.py file to use to set up the environment, or false for none. # # Default: any setup.py files identified in the codebase are used in preference # # to any requirements text files. # setup_py: new-setup.py # # Override the version of the Python interpreter used for setup and extraction # # Default: Python 3 if no version is explicitly specified, and if there are no # # commits to the repository before January 1, 2017. Otherwise Python 2. # version: 3 # # Optional step. You should add a `before_index` step if you need to run commands # # before the `index` step. # before_index: # - antlr4 -Dlanguage=Python3 Grammar.g4 # # The `index` step extracts information from the files in the codebase. # index: # # Specify a list of files and folders to exclude from extraction. # # Default: Git submodules and Subversion externals. # exclude: # - legacy-implementation # - thirdparty/libs # filters: # - exclude: "**/documentation/examples/snippets/*.py" # - include: "**/documentation/examples/test_application/*" # include: