### Run UI Tests - Start IDE Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Start an IDE instance with the SonarQube for IntelliJ plugin to run UI tests. The '&' symbol runs the command in the background. ```bash ./gradlew :its:runIdeForUiTests & ``` -------------------------------- ### Run UI Tests - Execute Tests Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md After starting the IDE instance, run this command to execute the integration tests (ITs). ```bash ./gradlew :its:check ``` -------------------------------- ### Run UI Tests with Local IDE Installation Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Use the `runIdeDirectory` property to point to a local IntelliJ IDEA installation for running UI tests. ```bash ./gradlew :its:runIdeForUiTests -PrunIdeDirectory=/path/to/intellij/installation ``` -------------------------------- ### CMake Project Setup Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/its/projects/sample-cpp/CMakeLists.txt Defines the minimum required CMake version, names the project, and sets the C++ standard. Use this to establish the basic build environment for your C++ project. ```cmake cmake_minimum_required(VERSION 3.15.3) project(sample-cpp) ``` ```cmake set(CMAKE_CXX_STANDARD 14) ``` ```cmake add_executable(sample-cpp main.cpp myincludes.h) ``` -------------------------------- ### Create PKCS12 file for TLS Server Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Use this command to export a certificate and private key into a PKCS12 file for starting a TLS server. Remember the export password. ```bash $ openssl pkcs12 -export -in server.pem -inkey server.key -name localhost -out server.p12 Enter Export Password: pwdServerP12 Verifying - Enter Export Password: pwdServerP12 ``` -------------------------------- ### Run Local IDE Instance Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Launch a local IntelliJ instance with the SonarLint plugin installed using the Gradle task `runLocalIde`. The instance files are stored in `build/sonarlint-test`. To run against a specific IDE, use the `runIdeDirectory` property. ```bash ./gradlew :runLocalIde -PrunIdeDirectory= ``` -------------------------------- ### Extend AbstractLightTests in Your Tests Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/test-common/README.md Extend the AbstractLightTests base class for your lightweight unit tests. This class provides setup and uses RunInEdtInterceptor for proper EDT handling. ```kotlin class MyTests : AbstractLightTests() { @Test fun `should do something`() { // your test code } } ``` -------------------------------- ### Build Plugin and Run Tests with Gradle Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Execute this command to build the plugin and run all associated tests and checks. ```bash ./gradlew check buildPlugin ``` -------------------------------- ### Build Plugin with Gradle Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Use this command to build the plugin using Gradle. Note that this command does not run tests or checks. ```bash ./gradlew buildPlugin ``` -------------------------------- ### List Gradle Tasks Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Run this command to see a complete list of available Gradle tasks for the project. ```bash ./gradlew tasks ``` -------------------------------- ### Generate CA Key and Certificate with OpenSSL Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Use this command to generate both the private key and the CA certificate for client authentication. Ensure you have the 'openssl-client-auth.conf' configuration file. ```bash openssl req -newkey rsa:4096 -nodes -keyout ca-client-auth.key -new -x509 -days 3650 -sha256 -extensions ca_extensions -out ca-client-auth.crt -subj '/C=CH/ST=Geneva/L=Geneva/O=SonarSource Sàrl/CN=SonarSource/' -config ./openssl-client-auth.conf Generating a 4096 bit RSA private key ...................................++ ............................................................................................................................................................................................................................................................++ writing new private key to 'ca-client-auth.key' ----- ``` -------------------------------- ### Create PKCS12 Certificate Bundle with OpenSSL Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Export the signed client certificate and its private key into a PKCS12 file, which can be password protected. ```bash $ openssl pkcs12 -export -in client.pem -inkey client.key -name julienhenry -out client.p12 Enter Export Password: pwdClientCertP12 Verifying - Enter Export Password: pwdClientCertP12 ``` -------------------------------- ### Run UI Tests with Specific IDE Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Execute UI tests using a specific IDE instance by providing the path to the IDE directory. Ensure the IDE is in the foreground during test execution and the SONARCLOUD_IT_TOKEN environment variable is defined if tests leverage SonarCloud. ```bash ./gradlew :its:runIdeForUiTests -PrunIdeDirectory= & ``` -------------------------------- ### Import Server Certificate into JKS Keystore Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Import the server's certificate into a JKS keystore for client use. You will be prompted to set a keystore password and to trust the certificate. ```bash $ keytool -import -alias localhost -keystore client-with-certificate.p12 -file server.pem Enter keystore password: pwdClientP12 Re-enter new password: pwdClientP12 Owner: CN=localhost, O=SonarSource Sàrl, L=Geneva, ST=Geneva, C=CH Issuer: CN=SonarSource, O=SonarSource Sàrl, L=Geneva, ST=Geneva, C=CH Serial number: d5c52ac2c8f643bb Valid from: Fri Sep 14 15:51:02 CEST 2018 until: Mon Sep 11 15:51:02 CEST 2028 Certificate fingerprints: MD5: A5:36:AF:BD:50:26:49:1E:C2:E9:D8:40:FB:29:0D:9E SHA1: B3:E5:DF:FB:87:D6:42:4B:92:A4:9F:B9:10:A9:5C:26:57:D8:05:28 SHA256: 69:2D:91:68:36:68:8A:35:1D:5E:CA:1C:A8:EE:F1:EA:33:35:5F:50:D8:2F:E0:36:37:9D:24:99:3A:1E:F4:BB Signature algorithm name: SHA256withRSA Subject Public Key Algorithm: 4096-bit RSA key Version: 1 Trust this certificate? [no]: yes Certificate was added to keystore ``` -------------------------------- ### Import CA Certificate into Keystore with keytool Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Import the CA certificate into a Java keystore file. This is useful for server configurations that trust the generated CA. ```bash $ keytool -import -trustcacerts -alias client-ca -keystore server-with-client-ca.p12 -file ca-client-auth.crt Enter keystore password: pwdServerWithClientCA Re-enter new password: pwdServerWithClientCA Owner: CN=SonarSource, O=SonarSource Sàrl, L=Geneva, ST=Geneva, C=CH Issuer: CN=SonarSource, O=SonarSource Sàrl, L=Geneva, ST=Geneva, C=CH Serial number: ed8bcadd4888ffac Valid from: Sat Sep 15 08:10:22 CEST 2018 until: Tue Sep 12 08:10:22 CEST 2028 Certificate fingerprints: MD5: 25:38:06:14:D0:B3:36:81:65:FC:44:CA:E3:BA:57:12 SHA1: 77:56:EF:C7:2F:5A:29:D1:A0:54:5F:F8:B4:19:60:91:7B:71:E4:2C SHA256: 1D:2D:E5:52:21:60:75:08:F3:0A:B3:93:CF:38:F6:30:88:56:28:73:20:BA:76:9A:C0:A1:D7:8C:4D:D3:84:AA Signature algorithm name: SHA256withRSA Subject Public Key Algorithm: 4096-bit RSA key Version: 3 Extensions: #1: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 87 B9 C1 23 E2 F1 A3 68 BD D6 44 99 0E AD FC FC ...#...h..D..... 0010: A5 31 90 D4 .1.. ] ] #2: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.37 Criticality=false ExtendedKeyUsages [ serverAuth ] #4: ObjectId: 2.5.29.15 Criticality=false KeyUsage [ DigitalSignature Key_Encipherment Data_Encipherment Key_CertSign Crl_Sign ] #5: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 87 B9 C1 23 E2 F1 A3 68 BD D6 44 99 0E AD FC FC ...#...h..D..... 0010: A5 31 90 D4 .1.. ] ] Trust this certificate? [no]: yes Certificate was added to keystore ``` -------------------------------- ### Use Dependency from Catalog in Build Script Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/gradle/README.md Include a dependency defined in the version catalog into your build script using the `libs` accessor. ```kotlin dependencies { implementation(libs.new.dependency) } ``` -------------------------------- ### Define Library in Version Catalog Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/gradle/README.md Define a new library using a referenced version in the `[libraries]` section of `libs.versions.toml`. ```toml [libraries] new-dependency = { group = "com.example", name = "library", version.ref = "newDependency" } ``` -------------------------------- ### Verify Certificate Details Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md This command displays the detailed information contained within a certificate file, including its version, serial number, signature algorithm, issuer, validity period, subject, public key, and extensions. ```bash $ openssl x509 -in server.pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: d5:c5:2a:c2:c8:f6:43:c7 Signature Algorithm: sha256WithRSAEncryption Issuer: C = CH, ST = Geneva, L = Geneva, O = SonarSource Sàrl, CN = SonarSource Sàrl Validity Not Before: Mar 17 14:12:29 2020 GMT Not After : Mar 15 14:12:29 2030 GMT Subject: C = CH, ST = Geneva, L = Geneva, O = SonarSource Sàrl, CN = localhost Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (4096 bit) Modulus: 00:a2:43:1e:8b:60:b5:e0:61:3e:99:a4:54:93:c8: 16:14:c2:fa:fd:e5:7c:05:02:71:09:46:d9:2a:52: 57:12:d7:74:46:6a:bd:d4:de:4a:06:b2:51:83:2c: 98:07:8c:b0:f7:e1:8a:aa:fc:0c:30:c6:d7:ec:57: 0b:a7:12:45:e3:13:1a:26:e8:22:d8:fd:2a:9e:ae: 7b:20:b8:41:99:50:0e:b7:1c:bb:78:18:60:25:67: 78:5b:af:d8:7f:d1:01:12:81:0a:1f:dd:f0:54:bc: 57:16:05:22:7c:65:a2:7e:03:ed:e8:7f:50:b1:cd: 7c:e8:7b:58:cb:df:6d:e3:04:03:78:a4:83:e7:20: c4:37:bc:00:ba:7c:12:d9:ac:52:88:88:72:df:fc: 35:8f:94:f0:1b:33:f8:94:b8:bc:ab:0e:89:68:5f: 92:1b:af:c9:da:c2:c2:e2:a1:c3:8e:c8:16:1a:9e: 89:7a:b4:24:2c:24:df:c5:26:59:ab:d8:f9:06:39: 02:c0:0d:88:5a:0c:14:e7:bc:c5:b8:4c:e5:e0:85: b2:0b:88:36:b3:d5:35:10:e9:b8:5a:48:69:1a:b3: 2a:4a:d6:f3:f5:6a:91:41:f8:1e:da:d0:0e:21:c3: a2:f8:5c:08:42:a2:2b:13:be:63:e5:67:d5:19:2f: 2c:96:6d:17:1c:7f:34:19:68:cf:91:b6:14:d9:9a: 1b:1c:f9:08:d7:f9:2d:c3:48:14:3d:02:d4:90:f7: f2:74:65:f8:22:2d:46:b2:76:cd:46:c1:8e:ab:a1: 11:d7:12:14:77:e3:1c:c3:1c:fa:32:79:0e:0e:59: 55:e4:9d:60:d7:18:0b:25:82:97:28:30:df:de:89: 5b:56:37:a2:33:86:26:12:83:75:f0:02:ae:88:b5: d6:5e:a2:b7:e7:57:9d:de:72:ad:d6:55:2a:e1:a8: 4c:15:18:a9:e3:22:52:f1:74:e1:b0:d2:e7:9b:ec: f9:6d:5f:86:c2:9c:e2:22:f2:f4:11:a2:d1:71:b8: 77:e4:8c:4c:ed:84:e8:f9:82:a2:f1:73:95:19:08: 92:d5:b3:50:be:bc:c2:ec:0e:d7:da:53:d2:22:36: c8:d8:48:d1:22:0d:42:a7:68:6d:e5:b6:5f:00:7d: 70:e4:5f:fe:df:db:3a:96:30:c8:76:89:e9:d1:98: 1e:63:e2:d0:29:46:b0:3d:f6:38:d7:07:40:47:0e: a3:a5:70:1c:8b:80:c1:81:d1:35:cd:3d:93:20:c6: 7c:10:a4:09:ed:41:12:2e:c3:66:e5:47:96:58:de: 53:1b:d5:67:2c:1d:55:3b:c1:03:28:cf:5e:aa:33: 2b:8c:e1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Authority Key Identifier: keyid:26:4F:F6:F9:E6:8B:B6:F7:59:CE:30:23:5C:90:2E:AE:7A:20:C4:DB X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment X509v3 Subject Alternative Name: DNS:localhost Signature Algorithm: sha256WithRSAEncryption b0:df:99:da:44:e1:22:c6:51:da:e1:b5:a9:fd:fe:82:d6:74: 07:ad:d4:b4:f8:29:3e:57:7a:1b:98:36:4e:0a:23:68:f5:27: c7:52:59:90:cd:94:23:08:83:6f:a4:af:14:a3:e3:ed:f2:13: e4:17:f7:7c:27:45:bc:8c:9a:1d:f3:90:c6:b4:3e:e8:7a:c1: 18:e4:8e:8c:28:ac:02:c7:d1:4c:e3:67:7a:13:69:ff:a4:74: c4:82:d7:54:d3:cb:7b:4e:f9:25:36:90:33:43:f0:b8:a5:e6: 7c:ea:3d:41:fe:51:3c:bc:d2:c6:4e:9c:dc:04:69:23:08:70: bf:69:2a:bd:28:8c:3f:a1:f0:b0:88:87:a2:af:63:85:86:e3: 07:2a:74:89:d0:69:b3:8c:7d:a5:db:ec:f2:5c:56:33:89:04: c6:75:a9:a2:b8:c0:1b:b5:dd:0f:96:50:71:ad:39:36:39:13: d0:80:f3:c8:50:db:d2:65:4d:56:75:9c:70:c2:d6:0c:6b:4a: 6e:f7:f1:76:1b:82:16:13:eb:37:4f:05:fd:8f:06:89:15:d7: 6d:a7:4e:43:bb:ee:b1:a8:c0:f4:cd:d7:1f:17:c3:3f:1a:79: 8f:6e:46:a4:e5:1f:82:8d:60:6f:6c:a2:f4:9b:6e:59:85:48: 73:ae:78:dd:c1:fa:81:1f:38:56:84:fc:31:98:af:a8:e4:bf: 62:45:16:38:4a:5d:0e:6a:c4:bf:e1:9b:2b:c4:eb:dc:d4:85: 82:0f:6c:31:54:1c:46:62:51:22:c3:0d:e4:ca:2e:c9:5f:f5: ``` -------------------------------- ### Run CI Verification Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Execute the plugin verification for CI builds. This command is used for automated checks in continuous integration environments. ```bash ./gradlew :verifyPlugin -PverifierEnv=CI ``` -------------------------------- ### Run UI Tests with Specific IntelliJ Version Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Use the `ijVersion` property to specify a particular IntelliJ IDEA version for running UI tests. ```bash ./gradlew :its:runIdeForUiTests -PijVersion=IC-2025.2 & ``` -------------------------------- ### Add Dependency Version to Catalog Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/gradle/README.md Define a new dependency version in the `[versions]` section of `libs.versions.toml`. ```toml [versions] newDependency = "1.2.3" ``` -------------------------------- ### Run Plugin Verification Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/README.md Execute the automated plugin verification process across multiple JetBrains IDEs using the IntelliJ Platform Plugin Verifier. This task is run locally via the specified Gradle command. ```bash ./gradlew :verifyPlugin ``` -------------------------------- ### Sign Client Certificate with CA using OpenSSL Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Sign the client's CSR using the CA certificate and private key to create a client certificate. ```bash $ openssl x509 -req -days 3650 -in client.csr -CA ca-client-auth.crt -CAkey ca-client-auth.key -CAcreateserial -out client.pem -sha256 Signature ok subject=C = CH, ST = Geneva, L = Geneva, O = SonarSource Sàrl, CN = Julien Henry Getting CA Private Key ``` -------------------------------- ### Generate TLS Server Private Key and CSR with OpenSSL Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Use this command to generate a new RSA private key and a certificate signing request (CSR). Ensure you have an openssl.conf file configured for your domain, especially for 'Common Name' and 'DNS.1'. Press Enter to accept defaults. ```bash $ openssl req -new -keyout server.key -out server.csr -nodes -newkey rsa:4096 -config ./openssl.conf Generating a 4096 bit RSA private key ........................................................................++ .........................................................................................++ writing new private key to 'server.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2-letter code) [CH]: State or Province Name (full name) [Geneva]: Locality (e.g. city name) [Geneva]: Organization (e.g. company name) [SonarSource Sàrl]: Common Name (your.domain.com) [localhost]: ``` -------------------------------- ### Create Client Certificate Signing Request (CSR) with OpenSSL Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Generate a private key and a CSR for a client certificate. The Common Name (CN) is used to identify the user. ```bash $ openssl req -new -keyout client.key -out client.csr -nodes -newkey rsa:4096 -subj '/C=CH/ST=Geneva/L=Geneva/O=SonarSource Sàrl/CN=Julien Henry/' -config ./openssl-client-auth.conf Generating a 4096 bit RSA private key ..............................................++ ................++ writing new private key to 'client.key' ----- ``` -------------------------------- ### Import CA Certificate into JKS Keystore Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Import the CA certificate into a JKS keystore for client use. This is useful when the server's certificate is signed by a trusted CA. You will be prompted to set a keystore password and to trust the certificate. ```bash $ keytool -import -trustcacerts -alias localhost -keystore client-with-ca.p12 -file ca.crt Enter keystore password: pwdClientCAP12 Re-enter new password: pwdClientCAP12 Owner: CN=SonarSource, O=SonarSource Sàrl, L=Geneva, ST=Geneva, C=CH Issuer: CN=SonarSource, O=SonarSource Sàrl, L=Geneva, ST=Geneva, C=CH Serial number: c0196248f8364c3a Valid from: Fri Sep 14 15:49:39 CEST 2018 until: Mon Sep 11 15:49:39 CEST 2028 Certificate fingerprints: MD5: 7D:4A:DB:BC:EC:FC:05:DD:AD:27:75:03:93:F4:B7:CA SHA1: 75:32:44:BD:56:97:71:12:46:F2:F6:B5:53:E3:1D:89:D8:9F:1A:C9 SHA256: 2E:A3:1D:AF:62:46:23:96:ED:C9:E3:0E:EF:5D:6F:A9:D4:64:DE:C0:CE:7A:5A:92:31:4E:B8:20:DC:0E:16:2A Signature algorithm name: SHA256withRSA Subject Public Key Algorithm: 4096-bit RSA key Version: 3 Extensions: #1: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: D8 26 73 57 2A 7B BA 5F 22 2B DD F7 2C DB 4D AA .&sW*.."+..,.M. 0010: 53 6E 33 91 Sn3. ] ] #2: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: D8 26 73 57 2A 7B BA 5F 22 2B DD F7 2C DB 4D AA .&sW*.."+..,.M. 0010: 53 6E 33 91 Sn3. ] ] Trust this certificate? [no]: yes Certificate was added to keystore ``` -------------------------------- ### Generate Private Key for CA Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Creates a 4096-bit RSA private key for the Certificate Authority using OpenSSL. This key will be used to sign other certificates. ```bash $ openssl genrsa -out ca.key 4096 .....++ ................................................................................................................................................++ e is 65537 (0x010001) ``` -------------------------------- ### Verify OpenSSL Certificate Signing Request (CSR) Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md This command verifies the contents of the generated CSR file. It displays details such as the subject, public key information, and requested extensions, including Subject Alternative Name. ```bash $ openssl req -verify -in server.csr -text -noout verify OK Certificate Request: Data: Version: 1 (0x0) Subject: C = CH, ST = Geneva, L = Geneva, O = SonarSource Sàrl, CN = localhost Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (4096 bit) Modulus: 00:c8:2d:dc:64:1a:b6:d9:a9:3e:bd:3f:d3:ae:27: ab:00:a8:09:f7:9e:ae:b5:70:c0:11:ab:2d:45:48: 6c:b9:b3:b1:4b:42:b7:4e:48:d3:2e:38:cb:e5:7d: 14:30:d3:b8:1d:2f:e2:09:04:cc:aa:80:09:51:bc: 59:9d:a7:7a:76:34:cc:7a:2b:ae:d3:ef:98:38:ef: b2:8a:0e:e9:2f:79:4e:d4:a9:10:63:2b:5b:05:05: ef:6b:98:41:e3:c0:3e:6c:5f:8a:66:10:ca:98:e5: 37:c6:ea:13:48:c9:92:22:53:44:1a:61:27:f4:60: 16:a7:a9:87:a9:d3:cf:88:5e:d4:47:44:24:4f:6d: 5e:c0:4a:ff:ad:e4:82:63:da:82:eb:9e:b3:76:6f: 5d:b4:2d:fc:96:4a:98:e4:f5:20:97:48:38:11:29: 33:7d:5a:96:fa:28:49:9f:cb:24:f8:02:f6:bb:ed: f3:91:90:51:10:c2:93:28:56:6e:4d:51:51:10:27: 8f:c3:f0:cd:ee:51:2d:dc:e5:a7:21:55:20:44:ac: 8b:66:1d:b7:eb:e0:ed:69:f0:d4:32:82:ee:53:91: 3b:ee:58:83:ba:3b:9d:3f:f7:23:0e:36:46:20:6b: 6a:80:9b:11:46:28:39:60:25:69:9e:e5:d0:34:ba: 2b:c3:33:f2:44:3d:fb:8f:2d:47:a6:ae:64:9a:b3: 5a:f0:ed:cb:3e:86:33:80:23:32:d0:e7:51:91:a8: c6:97:d1:7c:e4:02:52:5d:7c:a9:97:83:00:c5:10: fb:13:f9:29:1f:79:c4:a5:8c:7b:64:e0:cd:b6:a1: 34:36:aa:f4:63:63:77:12:d3:fa:fe:1d:54:2e:64: 43:38:a2:71:28:72:7a:bf:33:cb:8c:27:a7:66:51: 8f:6f:e8:d2:90:19:2f:d4:8e:ac:b4:7b:e0:53:a8: 0f:11:d1:7d:08:71:de:0a:a4:63:10:79:c8:e8:bf: 7e:be:8b:06:7d:43:9b:4b:a1:0a:49:a6:c8:c6:43: c4:24:23:13:2a:b2:f9:f2:b8:e7:8e:ab:3e:2a:b5: 50:26:23:d6:b2:d3:ee:23:ec:d1:36:92:70:2e:df: 82:6a:d2:07:bb:f0:97:51:42:e4:d8:49:69:35:bb: 38:90:1f:8e:aa:1d:27:78:26:26:d4:36:75:ee:83: 17:69:cb:7f:53:45:8f:b4:63:13:d5:fd:42:10:8a: d3:75:38:4a:bd:13:cf:68:5e:41:6d:f0:57:b5:75: e3:dc:10:82:ab:29:ed:a1:27:9c:50:74:f2:4c:4a: a3:78:2a:53:ca:90:a6:89:20:24:85:b5:ec:c9:c7: be:96:b5 Exponent: 65537 (0x10001) Attributes: Requested Extensions: X509v3 Subject Alternative Name: DNS:localhost X509v3 Key Usage: Digital Signature, Key Encipherment, Data Encipherment X509v3 Extended Key Usage: TLS Web Server Authentication Signature Algorithm: sha256WithRSAEncryption bf:9d:6e:2f:cc:40:9b:92:29:c2:f1:0a:85:6c:35:eb:8e:fa: 13:0c:53:58:33:5f:7b:09:58:5f:dd:94:7e:2c:65:ed:73:91: 2a:6b:cc:2d:ec:26:1c:8e:95:57:d9:35:19:82:4f:42:59:81: d9:b7:bb:08:70:28:70:35:50:f6:6a:46:e0:2a:ab:90:50:5a: dc:b0:c3:b8:52:d7:5c:90:8f:4c:61:09:2c:ba:4a:31:37:6f: e0:b9:6b:98:dd:aa:dd:52:66:7e:06:f1:8a:4b:bc:23:0d:62: ``` -------------------------------- ### Add Test Fixture Dependency in Gradle Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/test-common/README.md Include this dependency in your module's build.gradle.kts file to use shared test utilities from the test-common module. ```kotlin dependencies { testImplementation(testFixtures(project(":test-common"))) // other dependencies... } ``` -------------------------------- ### Create X.509 CA Certificate Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Generates a self-signed X.509 Certificate Authority certificate that is valid for 3650 days. This command uses the previously generated private key and a configuration file. ```bash openssl req -key ca.key -new -x509 -days 3650 -sha256 -extensions ca_extensions -out ca.crt -config ./openssl.conf You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:CH State or Province Name (full name) [Some-State]:Geneva Locality Name (eg, city) []:Geneva Organization Name (eg, company) [Internet Widgits Pty Ltd]:SonarSource Sàrl Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:SonarSource Email Address []: ``` -------------------------------- ### Sign CSR with Custom CA Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/src/test/testData/SSLTests/README.md Use this command to sign a Certificate Signing Request (CSR) with your existing CA certificate and private key. The certificate will be valid for the specified number of days. ```bash $ openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.pem -sha256 -extfile v3.ext Signature ok subject=C = CH, ST = Geneva, L = Geneva, O = SonarSource Sàrl, CN = localhost Getting CA Private Key ``` -------------------------------- ### Update Gradle Dependency Lock Files Source: https://github.com/sonarsource/sonarlint-intellij/blob/master/gradle/README.md Regenerate all dependency lock files after making changes to dependencies. Ensure to commit the updated lock files along with dependency changes. ```bash ./gradlew --write-locks dependencies \ :common:dependencies \ :clion:dependencies \ :clion-resharper:dependencies \ :nodejs:dependencies \ :git:dependencies \ :rider:dependencies \ :test-common:dependencies \ :its:dependencies ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.