ignore_branches:
    - gh-pages

# Configure the failure conditions for your commit status
# If at least one of these conditions is verified, the commit status is displayed as failed
commit_failure_conditions:
    # By severities count (default configuration, any change will override it)
    - "project.severity.critical > 0"
    - "project.severity.major > 0"

    # # By other severities count
    # - "project.severity.minor > 0"
    # - "project.severity.info >= 15"
    #
    # # By categories count
    # - "project.category.architecture > 0"
    # - "project.category.bugrisk > 0"
    # - "project.category.codestyle > 0"
    # - "project.category.deadcode > 0"
    # - "project.category.performance > 0"
    # - "project.category.readability > 0"
    # - "project.category.security > 0"
    #
    # # By project grade (none, bronze, silver, gold, platinum)
    # - "project.grade >= gold"
    #
    # # By total violations count
    # - "project.violations > 150"

# Can be set to 5 or 7. If not present, it will prefer 7 but fallback to 5 if errored
php_version: 7

global_exclude_dirs:
    - vendor
    - var

rules:
    composer.apc_class_loader_should_be_enabled:
        enabled: true
    composer.dependencies_not_installable:
        enabled: true
    composer.invalid_file:
        enabled: true
    composer.outdated_lock_file:
        enabled: true
    composer.security_issue_in_composer:
        enabled: true
    composer.unfixed_dependency_version:
        enabled: true
    composer.warning:
        enabled: true
    doctrine.database_query_contains_string_and_variable_concatenation:
        enabled: true
    doctrine.invalid_schema:
        enabled: true
    doctrine.use_flush_in_loop:
        enabled: true
    git.user_specific_ignored_file:
        enabled: true
    html.html_link_contains_javascript:
        enabled: true
    invalid_e_o_l:
        enabled: true
        eol: unix
    missing_e_o_l:
        enabled: true
    mock.rule: null
    php.absolute_path_present:
        enabled: true
        allowed_paths: [/dev, /etc, /proc]
    php.bad_mutator_method_name_for_boolean_property:
        enabled: true
    php.boolean_statement:
        enabled: true
    php.class_too_long:
        enabled: true
        max_length: 500
        threshold: 5
    php.commented_out_code:
        enabled: true
    php.contaminant_third_party_component_license:
        enabled: true
    php.debug_statements:
        enabled: true
    php.duplicated_code:
        enabled: true
    php.dynamically_change_configuration:
        enabled: true
    php.file_contains_more_than_one_class:
        enabled: true
    php.for_loop_uses_test_function:
        enabled: true
    php.interface_has_no_interface_suffix:
        enabled: true
        interface_name_pattern: /(Interface|Exception|able)$/
    php.method_or_property_missing_visibility:
        enabled: true
    php.method_too_long:
        enabled: true
        max_length: 50
        threshold: 5
    php.missing_use_statement:
        enabled: true
    php.neglected_tests:
        enabled: true
    php.object_parameter_not_type_hinted:
        enabled: true
    php.php7_reserved_words:
        enabled: true
    php.php_magic_methods:
        enabled: true
    php.php_syntax_error:
        enabled: true
    php.psr1:
        enabled: true
    php.silenced_error:
        enabled: true
        function_whitelist: [unlink, fopen, fwrite, fclose, rename, chmod, mkdir, rmdir, file_put_contents, move_uploaded_file, chgrp, lchgrp, chown, lchown, touch, symlink, highlight_file, ftp_get, ftp_close, ftp_size, ftp_chdir, ftp_delete, ftp_rmdir, ftp_put, ftp_mkdir, ftp_chmod, ftp_nlist, copy, delete, fileatime, filectime, filemtime, is_readable, is_writable, is_writeable, is_executable, is_link, is_file, is_directory, fputs, fsockopen, get_resource_type, getenv, getimagesize, iconv, imagecreatefromstring, ldap_add, ldap_bind, ldap_delete, ldap_get_option, ldap_modify, ldap_search, ldap_set_option, link, posix_isatty, readfile, readlink, stream_socket_client]
    php.static_method_should_not_use_this:
        enabled: true
    php.strict_boolean_comparison_should_be_used:
        enabled: true
    php.too_many_files_per_folder_for_performance:
        enabled: true
        max_count: 10000
    php.too_permissive_file_permissions:
        enabled: true
        allowed_dirs: [bin, scripts]
    php.unreachable_code:
        enabled: true
    php.unused_local_variable_or_private_member:
        enabled: true
    php.unused_use_statement:
        enabled: true
    php.use_deprecated_function:
        enabled: true
    php.use_exit_function:
        enabled: true
        ignore_files: [web/config.php]
    php.use_global_variable_or_function:
        enabled: true
    php.use_php_ereg_function:
        enabled: true
    php.use_php_eval_function:
        enabled: true
    php.use_php_short_open_tag:
        enabled: true
    php.use_php_sleep_function:
        enabled: true
    symfony.acme_bundle_found:
        enabled: true
    symfony.app.cache_or_log_file_in_repository:
        enabled: true
    symfony.app.confidential_parameters_file_present_in_repository:
        enabled: true
    symfony.app.first_level_service:
        enabled: true
    symfony.app.sensitive_data_found_in_application_configuration:
        enabled: true
    symfony.application_not_bootable:
        enabled: true
    symfony.bundle_boot_method_should_be_empty:
        enabled: true
    symfony.configuration.error_pages_should_be_customised:
        enabled: true
    symfony.configuration.yaml_syntax_error:
        enabled: true
    symfony.controller.action_method_too_long:
        enabled: true
        max_length: 20
        threshold: 10
    symfony.controller.get_action_mutates_resource:
        enabled: true
    symfony.controller.missing_redirect_after_post:
        enabled: true
    symfony.controller.non_action_public_method_in_controller_class:
        enabled: true
    symfony.controller.too_many_actions_per_controller:
        enabled: true
        max_count: 10
        threshold: 5
    symfony.controller.too_many_template_variables:
        enabled: true
        max_count: 6
        threshold: 5
    symfony.dependency_injection.no_container_as_parameter:
        enabled: true
    symfony.dependency_injection.no_entity_manager_as_parameter:
        enabled: true
    symfony.dependency_injection.use_dir_file_constant:
        enabled: true
    symfony.exceptions_enabled_in_production:
        enabled: true
    symfony.form.form_type_not_in_type_form_folder:
        enabled: true
    symfony.include_statement_used:
        enabled: true
    symfony.inject_request_service:
        enabled: true
    symfony.obvious_csrf_key:
        enabled: true
    symfony.print_statements:
        enabled: true
    symfony.request.session_cookie_default_name:
        enabled: true
    symfony.request.use_create_from_globals:
        enabled: true
    symfony.routing.action_not_restricted_by_method:
        enabled: true
    symfony.routing.route_references_non_existent_action:
        enabled: true
    symfony.security.insecure_password_hashing_algorithm:
        enabled: true
    symfony.security.throw_access_denied_http_exception:
        enabled: true
    symfony.sessions_in_cache_directory:
        enabled: true
    symfony.templating.too_many_esi_inclusions:
        enabled: true
    symfony.twig_not_bootable:
        enabled: true
    symfony.use_php_database_function:
        enabled: true
    symfony.use_php_response_function:
        enabled: true
    symfony.use_php_session_function:
        enabled: true
    symfony.use_super_globals:
        enabled: true
    symfony.verbose_logging_in_production:
        enabled: true
    symfony.version.end_of_life:
        enabled: true
    symfony.version.latest_stable:
        enabled: true
    symfony.version.out_of_maintenance:
        enabled: true
    symfony.web.contains_php_files:
        enabled: true
    symfony.web.web_bundle_folder_present_in_repository:
        enabled: true
    symfony.web_config_should_not_be_present:
        enabled: true
    task_fixme_comment:
        enabled: true
    task_todo_comment:
        enabled: true
    task_xxx_comment:
        enabled: true
    third_party.use_deprecated_class:
        enabled: true
    third_party.use_deprecated_service:
        enabled: true
    twig.auto_reload_enabled:
        enabled: true
    twig.debug_enabled:
        enabled: true
    twig.disabled_escaper:
        enabled: true
    twig.disabled_strict_variable:
        enabled: true
    twig.template_too_complex:
        enabled: true
        max_depth: 5
    twig.template_too_long:
        enabled: true
        max_length: 200
        threshold: 5
    twig.twig_syntax_error:
        enabled: true
    twig.xss_vulnerability:
        enabled: true
    web.apache_config:
        enabled: true
    web.default_favicon:
        enabled: true
    web.missing_favicon:
        enabled: true
    web.missing_robots_txt:
        enabled: true
    web.non_utf8_encoding:
        enabled: true
    xml.syntax_error:
        enabled: true
