.lgtm.yml 18.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402
##########################################################################################
# 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.
  test:
    # Override LGTM's default classification of test files by excluding all files.
    - exclude: /
    # Classify all files in the top-level directories tests/ and testsuites/ as test code.
    - tests
      # - 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.
    # - exclude: ui/**/*.c
    # By default, all files not checked into the repository are considered to be
    # 'generated'.
  # 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:
    - exclude: deps/
  # 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:
          #- exclude: path/to/template/code/**/*.c
  # 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:
  # Start by hiding the results of all queries.
  #  - exclude: "*"
  # Then include all queries tagged 'security' and 'correctness', and with a severity of
  # 'error'.
  #  - include:           
  #      tags:
  #        - "security"
  #        - "correctness"           
  #    severity: "error"
  # Specifically hide the results of two queries.
  # - exclude: cpp/use-of-goto
    # - exclude: java/equals-on-unrelated-types
  # Refine by including the `java/command-line-injection` query.
  # - include: java/command-line-injection

#########################################################################################
# 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:
          - cmake
    # 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:
            #- 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:
        - mkdir build
        - cd build
        - cmake ..
              # - ./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:
        - cd build
        - make
              # - $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:
    #   packages:
    #     - example_package
    # 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:
      #  - ./example-compile-all.sh
      # 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: "example_arg"
        # 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: "--fast"

  # Define settings for Go analysis
  ##################################
  #  go:
    # The `prepare` step exists for customization on LGTM.com only.
    # prepare:
    #   packages:
    #     - example_package
    # 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:
      # Override the autobuild process by specifying a list of custom build commands
      # to use instead.
      # build_command:
              #  - ./compile-all.sh

  # Define settings for Java analysis
  ####################################
  #  java:
    # The `prepare` step exists for customization on LGTM.com only.
    # prepare:
    #   packages:
    #     - example_package
    # 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 whether to extract Java .properties files
      # Default: false
      # properties_files: true
      # 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`, `pom.xml`, and `web.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:
    #   packages:
    #     - example_package
    # 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
      # 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` 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` and folders named `node_modules`
      # or `bower_components`
      # filters:
        # exclude any *.ts files anywhere.
        # - exclude: "**/*.ts"
        # but include *.ts files under src/js/typescript.
        # - include: "src/js/typescript/**/*.ts"
      # 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.
  #      version: 2
  #    # 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:
  #        - example/to/include