From 3f12be4aa9cb4a5c8f3e1a23bc79bbc2dc731a9d Mon Sep 17 00:00:00 2001 From: Oleksandr Kolodkin Date: Thu, 17 Jul 2025 23:04:19 +0300 Subject: [PATCH 1/7] add check with OWASP Signed-off-by: Oleksandr Kolodkin --- .github/workflows/github-actions-java8.yml | 12 ++++++++++++ build.gradle.kts | 15 +++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/.github/workflows/github-actions-java8.yml b/.github/workflows/github-actions-java8.yml index 46abd2b..3e56b0b 100644 --- a/.github/workflows/github-actions-java8.yml +++ b/.github/workflows/github-actions-java8.yml @@ -64,6 +64,18 @@ jobs: if: runner.os != 'Windows' run: chmod +x ./gradlew + - name: Run OWASP dependency check + if: matrix.os == 'windows-latest' # Only run on one platform + run: ./gradlew dependencyCheckAnalyze --no-daemon --stacktrace + + - name: Upload dependency check report + uses: actions/upload-artifact@v4 + if: matrix.os == 'windows-latest' # Only upload from one platform + with: + name: dependency-check-report + path: build/reports/dependency-check-report.html + retention-days: 30 + - name: Build with Gradle run: ./gradlew buildShadow --no-daemon --stacktrace diff --git a/build.gradle.kts b/build.gradle.kts index 033a85e..641b2e5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -81,3 +81,18 @@ tasks { dependsOn(shadowJar) } } + +// OWASP Dependency Check configuration +dependencyCheck { + // Format for the dependency check report + format = "HTML" + + // Suppress false positives (optional - can be configured as needed) + suppressionFile = "dependency-check-suppressions.xml" + + // Fail build on CVSS score of 7 or higher (High/Critical vulnerabilities) + failBuildOnCVSS = 7.0f + + // Auto-update vulnerability database (good for CI but can be slow) + autoUpdate = true +} From 45369b878e247cc0e7b9c385f515a5d7d57e6428 Mon Sep 17 00:00:00 2001 From: Oleksandr Kolodkin Date: Thu, 17 Jul 2025 23:16:00 +0300 Subject: [PATCH 2/7] try latest java version --- .github/workflows/github-actions-java8.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/github-actions-java8.yml b/.github/workflows/github-actions-java8.yml index 3e56b0b..c7826d0 100644 --- a/.github/workflows/github-actions-java8.yml +++ b/.github/workflows/github-actions-java8.yml @@ -56,6 +56,7 @@ jobs: with: java-version: "8" distribution: "zulu" + check-latest: true # Get the latest Java 8 patch version - name: Validate Gradle wrapper uses: gradle/actions/wrapper-validation@v4 From dee64c048771fc29fa5399def8185589fea0d99e Mon Sep 17 00:00:00 2001 From: Oleksandr Kolodkin Date: Thu, 17 Jul 2025 23:32:28 +0300 Subject: [PATCH 3/7] - setup owasp to use key --- build.gradle.kts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 641b2e5..ec35170 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -95,4 +95,26 @@ dependencyCheck { // Auto-update vulnerability database (good for CI but can be slow) autoUpdate = true + + // Enable NVD API with your API key + nvd { + enabled = true + apiKey = System.getenv("NVD_API_KEY") ?: "" + // Delay between requests to respect rate limits + delay = 4000 + } + + // Use all available vulnerability sources + ossIndex { + enabled = true + } + + retirejs { + enabled = true + } + + // Enable known exploited vulnerabilities (KEV) + kev { + enabled = true + } } From d90f62b620cc371459704aa9ec7c31caff07f73a Mon Sep 17 00:00:00 2001 From: Oleksandr Kolodkin Date: Thu, 17 Jul 2025 23:34:28 +0300 Subject: [PATCH 4/7] - set owasp api key in environment variable --- .github/workflows/github-actions-java8.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/github-actions-java8.yml b/.github/workflows/github-actions-java8.yml index c7826d0..07c960b 100644 --- a/.github/workflows/github-actions-java8.yml +++ b/.github/workflows/github-actions-java8.yml @@ -67,7 +67,10 @@ jobs: - name: Run OWASP dependency check if: matrix.os == 'windows-latest' # Only run on one platform - run: ./gradlew dependencyCheckAnalyze --no-daemon --stacktrace + run: ./gradlew dependencyCheckAnalyze --no-daemon --stacktrace --continue + continue-on-error: true # Don't fail the build if dependency check has issues + env: + NVD_API_KEY: ${{ secrets.NVD_API_KEY }} - name: Upload dependency check report uses: actions/upload-artifact@v4 From 63ff0eb436c345204f9a66fe66158e6a7e70e4c4 Mon Sep 17 00:00:00 2001 From: Oleksandr Kolodkin Date: Thu, 17 Jul 2025 23:39:02 +0300 Subject: [PATCH 5/7] fix syntaxis --- build.gradle.kts | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index ec35170..c5e9b1c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -85,7 +85,7 @@ tasks { // OWASP Dependency Check configuration dependencyCheck { // Format for the dependency check report - format = "HTML" + formats = listOf("HTML") // Suppress false positives (optional - can be configured as needed) suppressionFile = "dependency-check-suppressions.xml" @@ -93,28 +93,10 @@ dependencyCheck { // Fail build on CVSS score of 7 or higher (High/Critical vulnerabilities) failBuildOnCVSS = 7.0f - // Auto-update vulnerability database (good for CI but can be slow) - autoUpdate = true - // Enable NVD API with your API key - nvd { - enabled = true - apiKey = System.getenv("NVD_API_KEY") ?: "" - // Delay between requests to respect rate limits - delay = 4000 - } - - // Use all available vulnerability sources - ossIndex { - enabled = true - } + nvdApiKey = System.getenv("NVD_API_KEY") ?: "" + nvdApiDelay = 4000 - retirejs { - enabled = true - } - - // Enable known exploited vulnerabilities (KEV) - kev { - enabled = true - } + // Enable auto-update with NVD API + autoUpdate = true } From ba24cf1ed5dd1329be2c025019a1c96126c613fc Mon Sep 17 00:00:00 2001 From: Oleksandr Kolodkin Date: Thu, 17 Jul 2025 23:49:46 +0300 Subject: [PATCH 6/7] fix syntaxes Signed-off-by: Oleksandr Kolodkin --- build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index c5e9b1c..56f3de3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -94,9 +94,9 @@ dependencyCheck { failBuildOnCVSS = 7.0f // Enable NVD API with your API key - nvdApiKey = System.getenv("NVD_API_KEY") ?: "" - nvdApiDelay = 4000 - + nvd.apiKey = System.getenv("NVD_API_KEY") ?: "" + nvd.delay = 4000 + // Enable auto-update with NVD API autoUpdate = true } From 9ce01328f16945c6e86fd56f3ad225d98ced8a6c Mon Sep 17 00:00:00 2001 From: Oleksandr Kolodkin Date: Sun, 7 Jun 2026 16:09:33 +0300 Subject: [PATCH 7/7] update dependencies and GitHub Actions versions Signed-off-by: Oleksandr Kolodkin --- .github/workflows/github-actions-java8.yml | 10 ++--- build.gradle.kts | 49 ++++++++-------------- gradle/wrapper/gradle-wrapper.properties | 5 +-- 3 files changed, 24 insertions(+), 40 deletions(-) diff --git a/.github/workflows/github-actions-java8.yml b/.github/workflows/github-actions-java8.yml index 07c960b..b497bfe 100644 --- a/.github/workflows/github-actions-java8.yml +++ b/.github/workflows/github-actions-java8.yml @@ -49,10 +49,10 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Checkout repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up JDK 8 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: java-version: "8" distribution: "zulu" @@ -73,7 +73,7 @@ jobs: NVD_API_KEY: ${{ secrets.NVD_API_KEY }} - name: Upload dependency check report - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 if: matrix.os == 'windows-latest' # Only upload from one platform with: name: dependency-check-report @@ -83,7 +83,7 @@ jobs: - name: Build with Gradle run: ./gradlew buildShadow --no-daemon --stacktrace - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v7 if: matrix.os == 'windows-latest' # Only upload from one platform with: name: TestCheater-${{ github.sha }} @@ -91,7 +91,7 @@ jobs: retention-days: 30 - name: Upload build reports - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 if: failure() with: name: build-reports-${{ matrix.os }} diff --git a/build.gradle.kts b/build.gradle.kts index 56f3de3..a48a67f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,10 +5,10 @@ import java.util.Date plugins { application - kotlin("jvm") version "2.2.0" - kotlin("kapt") version "2.2.0" + kotlin("jvm") version "2.4.0" + kotlin("kapt") version "2.4.0" id("com.gradleup.shadow") version "8.3.8" - id("org.owasp.dependencycheck") version "9.0.7" + id("org.owasp.dependencycheck") version "12.2.2" } project.ext { @@ -24,18 +24,18 @@ repositories { dependencies { implementation(kotlin("stdlib")) - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0") - implementation("org.slf4j:slf4j-log4j12:2.0.17") - implementation("org.apache.logging.log4j:log4j-core:2.25.1") - implementation("org.apache.logging.log4j:log4j-api:2.25.1") - implementation("org.apache.logging.log4j:log4j-slf4j-impl:2.25.1") + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.4.0") + implementation("org.slf4j:slf4j-log4j12:2.0.18") + implementation("org.apache.logging.log4j:log4j-core:2.26.0") + implementation("org.apache.logging.log4j:log4j-api:2.26.0") + implementation("org.apache.logging.log4j:log4j-slf4j-impl:2.26.0") implementation("io.github.kolod:flatlaf-themes-combobox-model:1.1.1") - implementation("com.formdev:flatlaf:3.6.1") - implementation("com.formdev:flatlaf-extras:3.6.1") - implementation("com.formdev:flatlaf-intellij-themes:3.6.1") + implementation("com.formdev:flatlaf:3.7.1") + implementation("com.formdev:flatlaf-extras:3.7.1") + implementation("com.formdev:flatlaf-intellij-themes:3.7.1") implementation("org.drjekyll:fontchooser:3.1.0") - implementation("org.xerial:sqlite-jdbc:3.50.2.0") - implementation("com.jcabi:jcabi-manifests:2.1.0") + implementation("org.xerial:sqlite-jdbc:3.53.2.0") + implementation("com.jcabi:jcabi-manifests:2.2.0") } application { @@ -76,27 +76,12 @@ tasks.withType { from(configurations.runtimeClasspath.get().map {if (it.isDirectory) it else zipTree(it)}) } +dependencyCheck { + nvd.apiKey = System.getenv("NVD_API_KEY") ?: "" +} + tasks { build { dependsOn(shadowJar) } } - -// OWASP Dependency Check configuration -dependencyCheck { - // Format for the dependency check report - formats = listOf("HTML") - - // Suppress false positives (optional - can be configured as needed) - suppressionFile = "dependency-check-suppressions.xml" - - // Fail build on CVSS score of 7 or higher (High/Critical vulnerabilities) - failBuildOnCVSS = 7.0f - - // Enable NVD API with your API key - nvd.apiKey = System.getenv("NVD_API_KEY") ?: "" - nvd.delay = 4000 - - // Enable auto-update with NVD API - autoUpdate = true -} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d4081da..404b8d0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,6 @@ +#Sun Jun 07 09:14:15 EEST 2026 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip -networkTimeout=10000 -validateDistributionUrl=true +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists