checks: php: check_method_contracts: verify_interface_like_constraints: true verify_documented_constraints: true verify_parent_constraints: true return_doc_comments: true simplify_boolean_return: true no_long_variable_names: maximum: '20' more_specific_types_in_doc_comments: true return_doc_comment_if_not_inferrable: true param_doc_comment_if_not_inferrable: true parameter_doc_comments: true no_goto: true properties_in_camelcaps: true parameters_in_camelcaps: true no_short_method_names: minimum: '3' overriding_parameter: true phpunit_assertions: true naming_conventions: local_variable: '^[a-z][a-zA-Z0-9]*$' abstract_class_name: ^Abstract|Factory$ utility_class_name: 'Utils?$' constant_name: '^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$' property_name: '^[a-z][a-zA-Z0-9]*$' method_name: '^(?:[a-z]|__)[a-zA-Z0-9]*$' parameter_name: '^[a-z][a-zA-Z0-9]*$' interface_name: '^[A-Z][a-zA-Z0-9]*Interface$' type_name: '^[A-Z][a-zA-Z0-9]*$' exception_name: '^[A-Z][a-zA-Z0-9]*Exception$' isser_method_name: '^(?:is|has|should|may|supports)' javascript: var_sometimes_initialized: true var_never_initialized: true use_isnan: true unsafe_undefined: true unsafe_mutable_variable_usage: true nsp_vulnerabilities: true no_with: true no_void: true no_use_before_define: true no_unused_vars: true no_unused_function: true no_unused_expressions: true no_unused_const: true no_unused_assignment: true no_unreachable: true no_undef_init: true no_undef: true no_shadow_builtins: true no_sequences: true no_return_assign: true no_redeclared_const: true no_redeclare: true no_process_exit: true no_path_concat: true no_param_assign: true no_new_wrappers: true no_new_require: true no_new_func: true no_native_reassign: true no_loop_var_assign: true no_label_var: true no_invalid_regexp: true no_inner_declarations: true no_implied_eval: true no_implicit_undefined_return: true no_func_assign: true no_extra_bind: true no_extend_native: true no_ex_assign: true no_eval: true no_empty_label: true no_else_return: true no_dupe_keys: true no_delete_var: true no_debugger: true no_constant_condition: true no_caller: true no_bitwise: true no_array_constructor: true no_alias_builtins: true no_alert: true new_cap: true jsdoc_non_existent_params: true guard_for_in: true eqeqeq: true consistent_return: true code_rating: true check_unused_parameters: true check_unused_object_creation: true check_unnecessary_return: true check_unnecessary_continue: true check_undeclared_vars: true check_try_statement: true check_too_many_arguments: true check_switch_unintended label: true check_switch_default_only: true check_switch_ambiguous_test: true check_loop_no_body: true check_for_loops_test: true build: image: default-bionic nodes: analysis: environment: php: version: 8.1.20 project_setup: override: true tests: override: - phpcs-run - php-scrutinizer-run --enable-security-analysis - js-scrutinizer-run tests: environment: variables: MY_PATH: '/home/scrutinizer/vault/' TEST_LANGUAGE_VARIANTS: 1 DEBIAN_FRONTEND: 'noninteractive' php: version: 8.1.20 hosts: ci.test: 127.0.0.1 apache2: modules: [ 'ssl' ] sites: domain: web_root: web/ host: ci.test dependencies: before: - sudo DEBIAN_FRONTEND=noninteractive apt-get -y install imagemagick libmagickcore-dev libmagickwand-dev libmagic-dev jq xmlstarlet openssl shellcheck cmake libssl-dev libcurl4-openssl-dev - /home/scrutinizer/.phpenv/versions/8.1.20/bin/pear config-set download_dir /tmp - /home/scrutinizer/.phpenv/versions/8.1.20/bin/pear config-set cache_dir /tmp - /home/scrutinizer/.phpenv/versions/8.1.20/bin/pear config-set temp_dir /tmp - /home/scrutinizer/.phpenv/versions/8.1.20/bin/pecl update-channels - sudo printf "\n" | /home/scrutinizer/.phpenv/versions/8.1.20/bin/pecl install imagick - sudo apachectl restart - git submodule update --init - sudo cp -r /home/scrutinizer/build/tests/nsis3 /usr/local/share - git clone https://github.com/mtrojnar/osslsigncode.git - cd osslsigncode - git checkout 2.1 - ./autogen.sh - ./configure - make - sudo make install - sudo -H /home/scrutinizer/.pyenv/shims/python3.7 -m pip install pylint distro project_setup: override: - cd /home/scrutinizer/build - mysql -h 127.0.0.1 -u root -e 'create database cat' - mysql -h 127.0.0.1 -u root cat < schema/schema.sql - mysql -h 127.0.0.1 -u root cat < tests/cat_integration_scrutinizer.sql - | echo "<?php namespace config; class Master { const APPEARANCE = [ 'productname' => 'CAT', 'productname_long' => 'Configuration Assistant Tool', 'defaultlocale' => 'en', 'skins' => ['modern', 'example'], ]; const FUNCTIONALITY_LOCATIONS = ['CONFASSISTANT_SILVERBULLET' => 'LOCAL', 'CONFASSISTANT_RADIUS' => 'LOCAL', 'DIAGNOSTICS' => 'LOCAL', ]; const PATHS = ['logdir' => '/home/scrutinizer/', 'openssl' => '/usr/bin/openssl', 'cat_base_url' => '/' ]; const AUTHENTICATION = []; const GEOIP = []; const MAILSETTINGS = []; const LANGUAGES = [ 'ar' => ['display' => 'العربية', 'locale' => 'ar_SA.utf8', 'latin_based' => FALSE, 'rtl' => TRUE], 'bg' => ['display' => 'Български', 'locale' => 'bg_BG.utf8', 'latin_based' => FALSE, 'rtl' => FALSE], 'ca' => ['display' => 'Català', 'locale' => 'ca_ES.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'cs' => ['display' => 'Čeština', 'locale' => 'cs_CZ.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'de' => ['display' => 'Deutsch', 'locale' => 'de_DE.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'el' => ['display' => 'Ελληνικά', 'locale' => 'el_GR.utf8', 'latin_based' => FALSE, 'rtl' => FALSE], 'en' => ['display' => 'English(GB)', 'locale' => 'en_GB.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'es' => ['display' => 'Español', 'locale' => 'es_ES.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'et' => ['display' => 'Eesti', 'locale' => 'et_EE.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'fr' => ['display' => 'Français', 'locale' => 'fr_FR.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'hr' => ['display' => 'Hrvatski', 'locale' => 'hr_HR.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'it' => ['display' => 'Italiano', 'locale' => 'it_IT.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'hu' => ['display' => 'Magyar', 'locale' => 'hu_HU.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'nb' => ['display' => 'Norsk', 'locale' => 'nb_NO.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'pl' => ['display' => 'Polski', 'locale' => 'pl_PL.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'pt' => ['display' => 'Português', 'locale' => 'pt_PT.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], // 'sl' => ['display' => 'Slovenščina', 'locale' => 'sl_SI.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], // 'sr' => ['display' => 'Srpski', 'locale' => 'sr_RS@latin', 'latin_based' => TRUE, 'rtl' => FALSE], 'fi' => ['display' => 'Suomi', 'locale' => 'fi_FI.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], // 'tr' => ['display' => 'Türkçe', 'locale' => 'tr_TR.utf8', 'latin_based' => TRUE, 'rtl' => FALSE], 'uk' => ['display' => 'Українська', 'locale' => 'uk_UA.utf8', 'latin_based' => FALSE, 'rtl' => FALSE], ]; const DB = [ 'INST' => ['host' => '127.0.0.1', 'db' => 'cat', 'user' => 'root', 'pass' => NULL, 'readonly' => FALSE], 'FRONTEND' => ['host' => '127.0.0.1', 'db' => 'cat', 'user' => 'root', 'pass' => NULL, 'readonly' => FALSE], 'USER' => ['host' => '127.0.0.1', 'db' => 'cat', 'user' => 'root', 'pass' => NULL, 'readonly' => FALSE], 'EXTERNAL' => ['host' => '127.0.0.1', 'db' => 'cat', 'user' => 'root', 'pass' => NULL, 'readonly' => FALSE], ]; const MAX_UPLOAD_SIZE = 100000000; const DEBUG_LEVEL = 5; const SUPERADMINS = []; }" >/home/scrutinizer/build/config/Master.php - | echo "<?php namespace config; class ConfAssistant { const CONSORTIUM = [ 'name' => 'eduroam', 'display_name' => 'eduroam®', 'nomenclature_federation' => 'National Roaming Operator', 'nomenclature_idp' => 'Identity Provider', 'nomenclature_hotspot' => 'Hotspot', 'homepage' => 'https://www.eduroam.org', 'nomenclature_participant' => 'Customer', 'registration_API_keys' => [ 'iabcd' => 'LU' ], 'networks' => [ 'eduroam®' => [ 'ssid' => ['eduroam'], 'oi' => [ '001bc50460' /* eduroam RCOI */ ], 'condition' => TRUE], 'OpenRoaming® (%REALM%)' => [ 'ssid' => [], /* OpenRoaming has left SSIDs behind */ 'oi' => [ '5A03BA0000', /* OpenRoaming/AllIdentities/SettlementFree/NoPersonalData/BaselineQoS */ '5A03BA0800', /* OpenRoaming/EduIdentities/SettlementFree/NoPersonalData/BaselineQoS */ ], 'condition' => 'internal:openroaming',], ], ]; const SILVERBULLET = [ 'documentation' => 'https://wiki.geant.org/pages/viewpage.action?pageId=66650390', ]; const PATHS = [ 'makensis' => '/home/scrutinizer/build/tests/nsis3/bin/makensis' ]; const NSIS_VERSION = 3; const USE_KEYWORDS = true; const PRELOAD_IDPS = true; }" >/home/scrutinizer/build/config/ConfAssistant.php - | echo " namespace config; class Diagnostics { const RADIUSTESTS = []; }" >/home/scrutinizer/build/config/Diagnostics.php - | echo " -----BEGIN CERTIFICATE----- MIIGXjCCBEagAwIBAgIJAO9pbGGmiAY9MA0GCSqGSIb3DQEBDQUAMIG6MRMwEQYK CZImiZPyLGQBGRYDb3JnMRkwFwYKCZImiZPyLGQBGRYJMXgtY29uZmlnMTgwNgYD VQQKEy9FbnRlcnByaXNlIE5ldHdvcmsgQ29uZmlndXJhdGlvbiBBc3Npc3RhbnQg VG9vbDEmMCQGA1UECxMdU2NydXRpbml6ZXIgSW50ZWdyYXRpb24gVGVzdHMxJjAk BgNVBAMTHUNsaWVudCBDZXJ0aWZpY2F0ZSBJc3N1aW5nIENBMCAXDTE3MDMzMDEx MDExMloYDzIwNzIwMTAxMTEwMTEyWjCBujETMBEGCgmSJomT8ixkARkWA29yZzEZ MBcGCgmSJomT8ixkARkWCTF4LWNvbmZpZzE4MDYGA1UEChMvRW50ZXJwcmlzZSBO ZXR3b3JrIENvbmZpZ3VyYXRpb24gQXNzaXN0YW50IFRvb2wxJjAkBgNVBAsTHVNj cnV0aW5pemVyIEludGVncmF0aW9uIFRlc3RzMSYwJAYDVQQDEx1DbGllbnQgQ2Vy dGlmaWNhdGUgSXNzdWluZyBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC ggIBAM/hHQ9Yq+HDRovc/joBpl86D1RoVgNCb9tJ1OEFv0lbqQc9jdKVOfJxjPSl UyZqFp3mp8j9eUN8Xcxw7AJtSoUVurHa/coTVUMssvQfkDQz9zTaWjyslQREpIe9 ufbY1baULt43hfYGB82f7yvNOAjSmzLuKDd9jMDbQqlo1W92GiyA/hiVxya/hni+ 55zVmNrm/9du0zG9esJLv66r/N0AQUdVDdZE2k3ZhXwqobg6ym+kyQIxJSpBsgn2 Wyp5hJnJI3C9XhTlpN6nUE2CSkQhBbgdHQsERdzgWBrmDZunyS3kfQfI/eQXzeew Nz6BlXeUjnCUNIso6S9YbNswz+WNHGjWJ7HdG2pwH9R4W2KUp8xCnhXpmJKgsnSK HF1I4NQuuIcHW4Shtie6vPAVLBO3OkmpbEYHu1Q8Cv62pdpiyZLMNISUXv4ceDu2 iPrpqX7gU/MIdPxCdtZD1SJQeEAFd2ETyV2stXpzmh/9VvNTnvno05iNFw1XzjPc 5HEcGaChF45X7sEt+gVVPhLTk7qxO5v0z4BfXX0jASexg/NHBJHir2K6B8oU5+re 6jOrWW+QlA3Vx+yV1HO7WCpWHLqTfEh6xx635Q4sGl/a28Svra2Nr7xiwY+9tjUN tLSkQfgXpCtFR+/pn1CezFiKCOE2d6o7lFc1z05Oa30w96qBAgMBAAGjYzBhMB0G A1UdDgQWBBRoxvvluZf6wA/ewBxSEYLPdzMTPjAfBgNVHSMEGDAWgBRoxvvluZf6 wA/ewBxSEYLPdzMTPjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAN BgkqhkiG9w0BAQ0FAAOCAgEAtzvQrN1/SKqw4VHRn2pHSOFOQiw06isPw4mqK2zZ w/8olsB8sp0lLak7GE6GykDFTimTMz/WxoKxZld/IR2H69wDeDRjXz8HqWt9gkjw E9QZ16AvZKBNVLQfS4UEpj99S9Sk91WIulCFivKfNE5V/9UJmADD9j+hWkKM1AWj wbF96orjFVvjapGV1QN8ZYgZxeZXLiJ90DeQI7VDwdvCfh84PIK4cZW+9eVk4gBi SVWxxLT9vf/+M1XIiumF/oM3+8vnghDpYOGjyz6mMfPm+t0xoRLOeoPg2F58dNLw z1kbwDww2uMW5QikJuRCw6Gdh7GIxwBYtB9rANw/FnvpIQyZZHluVRKDr2FvO5+a jPN4PDY3qr5Ou5gO51aRG7kQ5AVXAXlrlGhoiO8KmE3nV8yTMr30uNucu04RbehM ZqdZdD/Fr2WqUX8fDA6DpGFuQh8AullVKEi4FuKXOtWItULj8E9S5vfedIdFoGLw VhrI1wUlDuaB0n9luIZJyhWAJ+CACPLyUCUccwJijV1kSkoQfd4BN+EVik1OEVoA hJq0/cRNFwGunljrIwYwkbB4NIrl60GWi4l8Y9K3GKUkT6Zvc8IyBS6YR91BVFxh HPDMtGU/bPQ12hAigmtchTB6VHVQpSNExpFkoBkwjUrWuqUK44rCTixrZIR8qeeo le8= -----END CERTIFICATE-----" >/home/scrutinizer/build/config/SilverbulletClientCerts/real-RSA.pem - | echo " -----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY-----" >/home/scrutinizer/build/config/SilverbulletClientCerts/real-RSA.key - | echo " -----BEGIN CERTIFICATE----- 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 -----END CERTIFICATE-----" >/home/scrutinizer/codesigningca.pem - | echo " -----BEGIN CERTIFICATE----- MIIFlDCCA3ygAwIBAgICAQAwDQYJKoZIhvcNAQENBQAwbjELMAkGA1UEBhMCWFgx FDASBgNVBAcTC0NvZGluZyBUb3duMQ0wCwYDVQQKEwROb25lMTowOAYDVQQDEzFT Y3J1dGluaXplciBDSSBOb3QgUmVhbGx5IFRydXN0ZWQgQ29kZSBTaWduaW5nIENB MB4XDTE4MTAxODA3NTYyOVoXDTI4MTAxNTA3NTYyOVowazELMAkGA1UEBhMCWFgx FDASBgNVBAcTC0NvZGluZyBUb3duMQ0wCwYDVQQKEwROb25lMTcwNQYDVQQDEy5V bnRydXN0ZWQgYW5kIFVzZWxlc3MgQ29kZSBTaWduaW5nIENlcnRpZmljYXRlMIIC IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2zV0C02oZW0qwOIt40XFW+Ua EWqbNBRgeJj4obpiuQnnsOISHVgPLbvXjHyDkVrUhdpujf5UoIQXN6nytP4MvdAS PP+CO99i1Y8oMA+JEv28LG1kQiW5978SidVkaRZ+g9j0Py3PUI9pK9bQC+gHQb5m aanqwD9dsnz45Ck4K32M9IFwmzCMwnZLKgMSGOJa8nOuFMO2DRQYkuKjkQzHgaxP CvzjaFNfs7Ul4EbtMa4tPCks2vKyfNn1500q539VwtgcQFy0M2CPhNanw85wMQSC ifXEaqaqQQoIaOip31058eCrLkn5RXTmyqx8MaIOQzZVSQN3GesoLC5K8YUJek99 dp3Yl5o7zGWnzYYzEiBUpd8mxC6LLXZ5t0WyJfpHgfgysErN9/b4cMfcr0Ea7KRz kPh9JjvqkMwc3QXSGe/SDpAcuBEKi4oo5BrcFqpHUttKVu9C1BeZHHZ9zSGaCeN6 2dPdR0jXe5dYT1hWn9kxoZp9u0v9xU67llSv3u+KFZyvOBDQGBFr4q0yN+vIUECc lOOoi7Xcw+pkRZhCx0BstUaV/tffnP9KwIPsOw8dPyZSV+zkklSdI2m5T/qQFPOb dxY9e1tyewwitVi7P1jJJy4lTNnU5DilI4P24vlpVovMnqlkZYvrkCotcTROtwx5 IAaRk1wxOQSxw0eeUUcCAwEAAaM/MD0wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8E BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFCAICMA0GCSqGSIb3DQEB DQUAA4ICAQC3OfsseaMAvMhbxAVnrZk6Lgq8Nh4D6PnUucGqNvXV+HO/JcoH25mH 6xtWUb4Nz/OGxOFDRcPmBpCoFXMPxxTovqhkpAAay6VACnbnW61oO0+ikyCk+ZYY +OWgRMZ1xFtEfwvzbM8ILkFoeJXZHy0ozVxNxGLKG/t0uM6ltrpMnDTtOu1fB3sr 4ggJPtIT4pTYj9TURdBw/Od5lbIKv/BObZu8+SbRD1sHd7hRPfdst2mr/0G1kMOV w64j1XdEi7Qx8N+LUgKYMFBJX2wTNE/l8+WdTNLbT1D/k/zPn6ld5y7pRDd453Io asiP+smdnErwIR4+7Ptlh7DHLU1nMAv/VsWyO2OuuleJEZNQWep/N/gEs/KHrtVF hy9kR9eyTJyHugiCvGyxM9wpfsj6UTUP4LBU3QucfJOsYiEaDqkwXbtwYDBDzlAL 4XDYseqwHy685yQkF/derhyAJLknHYLav16qtB/BR2FcriH0kJvPAh11DZbkEYeL HZzQ+c2wzakT15RxL1fQmo4xZv2LecdQggs8LiupN8MdvtIR/GmTsDX4XJXJ178N M97pbR2HB2aHCeyAnt+IJ9dOBU6k4bxkYy8l0vKcY0V3ed6YA26WMVWms6tVNR+7 8bN+CUnDB21DHc4DtoiorHXtON8Z7nD87ACQZEJ/SfqMkN7+RumNBA== -----END CERTIFICATE-----" >/home/scrutinizer/codesigningcert.pem - | echo " -----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY-----" >/home/scrutinizer/codesigningcert-key.pem - mkdir /home/scrutinizer/vault - openssl rsa -in /home/scrutinizer/codesigningcert-key.pem -out /home/scrutinizer/vault/xxx_key.der -outform der - openssl crl2pkcs7 -nocrl -certfile /home/scrutinizer/codesigningcert.pem -certfile /home/scrutinizer/codesigningca.pem -outform DER -out /home/scrutinizer/vault/xxx.spc - cp /home/scrutinizer/codesigningca.pem /home/scrutinizer/vault/CAs.pem - cp /home/scrutinizer/codesigningcert.pem /home/scrutinizer/vault/xxx_cert.pem - cp /home/scrutinizer/codesigningcert-key.pem /home/scrutinizer/vault/xxx_key.pem - cp /home/scrutinizer/build/devices/Devices-template.php /home/scrutinizer/build/devices/Devices.php - cp /home/scrutinizer/build/signer/mobileconfig_sign-template /home/scrutinizer/build/signer/mobileconfig_sign - cp /home/scrutinizer/build/signer/ms_windows_sign-template /home/scrutinizer/build/signer/ms_windows_sign - sudo chown scrutinizer:scrutinizer /home/scrutinizer/.rnd tests: override: - command: wget http://ci.test/index.php -O /home/scrutinizer/artifacts/frontpage.html --no-verbose title: "Checking if front page loads without errors" - command: wget http://ci.test/admin/API.php -O /home/scrutinizer/artifacts/inst.log --method=POST --no-verbose --body-file=tests/inst.json title: "Creating a new participant organisation via API call" - command: wget http://ci.test/admin/API.php -O /home/scrutinizer/artifacts/profile.log --method=POST --no-verbose --body-file=tests/profile1.json title: "Creating a new RADIUS profile for this organisation via API call" - command: wget http://ci.test/user/API.php?action=downloadInstaller\&api_version=2\&lang=en\&device=chromeos\&profile=3 -O /home/scrutinizer/artifacts/ChromeInstaller.onc --no-verbose title: "Generating a ChromeOS installer via API call" - command: cat /home/scrutinizer/artifacts/ChromeInstaller.onc | jq -r .Type | grep UnencryptedConfiguration title: "Checking whether output parses as JSON with expected top-level parameter" - command: wget http://ci.test/user/API.php?action=downloadInstaller\&api_version=2\&lang=en\&device=w10\&profile=3 -O /home/scrutinizer/artifacts/WinInstaller.exe --no-verbose title: "Generating Windows 10 installer via API call" - command: file /home/scrutinizer/artifacts/WinInstaller.exe | egrep 'executable.*Intel.*Windows.*Nullsoft' title: "Checking whether output is a Windows executable and Nullsoft installer" - command: wget http://ci.test/user/API.php?action=downloadInstaller\&api_version=2\&lang=en\&device=apple_hi_sierra\&profile=3 -O /home/scrutinizer/artifacts/AppleInstaller.mobileconfig --no-verbose title: "Generating a Apple High Sierra installer via API call" - command: openssl smime -verify -in /home/scrutinizer/artifacts/AppleInstaller.mobileconfig -inform der -noverify 2>&1 | egrep '(Verification successful|plist)' | wc -l | grep 4 title: "Checking whether output is a S/MIME signed Apple plist file" - command: wget http://ci.test/user/API.php?action=downloadInstaller\&api_version=2\&lang=en\&device=linux\&profile=3 -O /home/scrutinizer/artifacts/LinuxInstaller.py --no-verbose title: "Generating a Linux (Python) installer via API call" - command: /home/scrutinizer/.pyenv/versions/3.7.2/bin/pylint -E /home/scrutinizer/artifacts/LinuxInstaller.py title: "Checking whether output is a error-free Python file" - command: wget http://ci.test/user/API.php?action=downloadInstaller\&api_version=2\&lang=en\&device=linux_sh\&profile=3 -O /home/scrutinizer/artifacts/LinuxInstaller.sh --no-verbose title: "Generating a Linux (Bash) installer via API call" - command: shellcheck -e SC2034,SC2086,SC2059,SC2181,SC2162,SC2166,SC2128,SC2196 /home/scrutinizer/artifacts/LinuxInstaller.sh title: "Checking whether output is a error-free Bash script" - command: wget http://ci.test/user/API.php?action=downloadInstaller\&api_version=2\&lang=en\&device=eap-config\&profile=3 -O /home/scrutinizer/artifacts/GenericInstaller.xml --no-verbose title: "Generating an eap-config XML file via API call" - command: xmlstarlet val -s "/home/scrutinizer/build/devices/eap_config/eap-metadata.xsd" "/home/scrutinizer/artifacts/GenericInstaller.xml" title: "Checking whether output is well-formed XML and validates against Schema" - command: if [ "$TEST_LANGUAGE_VARIANTS" == "1" ]; then cd /home/scrutinizer/build/utils; /home/scrutinizer/.phpenv/versions/8.1.20/bin/php installTranslations.php; sudo apachectl restart; cd /home/scrutinizer/build/tests; /home/scrutinizer/.phpenv/versions/8.1.20/bin/php prepareMultiLangDownloads.php; /bin/bash ./langTestScript.sh; fi services: mariadb: 10 tools: php_code_coverage: enabled: true filter: excluded_paths: - "web/external/*" - "web/apidoc/*" - "vendor/*" - "tests/*" dependency_paths: - "core/PHPMailer/" - "core/phpqrcode.php" - "core/GeoIP2/" - "core/PHPUnit/" - "core/simpleSAMLphp/"
checks: php: check_method_contracts: verify_interface_like_constraints: true verify_documented_constraints: true verify_parent_constraints: true return_doc_comments: true simplify_boolean_return: true no_long_variable_names: maximum: '20' more_specific_types_in_doc_comments: true return_doc_comment_if_not_inferrable: true param_doc_comment_if_not_inferrable: true parameter_doc_comments: true no_goto: true properties_in_camelcaps: true parameters_in_camelcaps: true no_short_method_names: minimum: '3' overriding_parameter: true phpunit_assertions: true naming_conventions: local_variable: '^[a-z][a-zA-Z0-9]*$' abstract_class_name: ^Abstract|Factory$ utility_class_name: 'Utils?$' constant_name: '^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$' property_name: '^[a-z][a-zA-Z0-9]*$' method_name: '^(?:[a-z]|__)[a-zA-Z0-9]*$' parameter_name: '^[a-z][a-zA-Z0-9]*$' interface_name: '^[A-Z][a-zA-Z0-9]*Interface$' type_name: '^[A-Z][a-zA-Z0-9]*$' exception_name: '^[A-Z][a-zA-Z0-9]*Exception$' isser_method_name: '^(?:is|has|should|may|supports)' javascript: var_sometimes_initialized: true var_never_initialized: true use_isnan: true unsafe_undefined: true unsafe_mutable_variable_usage: true nsp_vulnerabilities: true no_with: true no_void: true no_use_before_define: true no_unused_vars: true no_unused_function: true no_unused_expressions: true no_unused_const: true no_unused_assignment: true no_unreachable: true no_undef_init: true no_undef: true no_shadow_builtins: true no_sequences: true no_return_assign: true no_redeclared_const: true no_redeclare: true no_process_exit: true no_path_concat: true no_param_assign: true no_new_wrappers: true no_new_require: true no_new_func: true no_native_reassign: true no_loop_var_assign: true no_label_var: true no_invalid_regexp: true no_inner_declarations: true no_implied_eval: true no_implicit_undefined_return: true no_func_assign: true no_extra_bind: true no_extend_native: true no_ex_assign: true no_eval: true no_empty_label: true no_else_return: true no_dupe_keys: true no_delete_var: true no_debugger: true no_constant_condition: true no_caller: true no_bitwise: true no_array_constructor: true no_alias_builtins: true no_alert: true new_cap: true jsdoc_non_existent_params: true guard_for_in: true eqeqeq: true consistent_return: true code_rating: true check_unused_parameters: true check_unused_object_creation: true check_unnecessary_return: true check_unnecessary_continue: true check_undeclared_vars: true check_try_statement: true check_too_many_arguments: true 'check_switch_unintended label': true 'check_switch_no_uncommented_fallthrough"': true check_switch_default_only: true check_switch_ambiguous_test: true check_loop_no_body: true check_for_loops_test: true build: nodes: tests: true analysis: tests: override: - command: phpcs-run use_website_config: true - php-scrutinizer-run - js-scrutinizer-run coding_style: php: indentation: general: use_tabs: false size: 4 switch: indent_case: true spaces: general: linefeed_character: newline before_parentheses: function_declaration: false closure_definition: false function_call: false if: true for: true while: true switch: true catch: true array_initializer: false around_operators: assignment: true logical: true equality: true relational: true bitwise: true additive: true multiplicative: true shift: true unary_additive: false concatenation: false negation: false before_left_brace: class: true function: true if: true else: true for: true while: true do: true switch: true try: true catch: true finally: true before_keywords: else: true while: true catch: true finally: true within: brackets: false array_initializer: false grouping: false function_call: false function_declaration: false if: false for: false while: false switch: false catch: false type_cast: false ternary_operator: before_condition: true after_condition: true before_alternative: true after_alternative: true in_short_version: false other: before_comma: false after_comma: true before_semicolon: false after_semicolon: true after_type_cast: true braces: classes_functions: class: undefined function: undefined closure: undefined if: opening: undefined always: true else_on_new_line: false for: opening: undefined always: true while: opening: undefined always: true do_while: opening: undefined always: true while_on_new_line: false switch: opening: undefined try: opening: undefined catch_on_new_line: false finally_on_new_line: false upper_lower_casing: keywords: general: undefined constants: true_false_null: undefined