feat: add AI-based security suggestion engine and CLI integration
Introduce new package org.egothor.methodatlas.ai providing AI-assisted classification of JUnit tests for security relevance. Key changes: - add AI suggestion engine, provider abstraction, and provider clients (OpenAI-compatible, Ollama, Anthropic) - implement strict JSON prompt/response contract and taxonomy handling - integrate AI enrichment into MethodAtlas CLI output (CSV and plain modes) - add configuration via AiOptions and CLI flags - add comprehensive JUnit + Mockito test coverage for AI components and CLI integration scenarios - add realistic test fixtures for security-related test classes - update Gradle configuration for Mockito agent support on JDK 21+ - provide complete Javadoc for the AI module The AI layer is optional and degrades gracefully when providers are unavailable or responses fail.
This commit is contained in:
21
build.gradle
21
build.gradle
@@ -8,6 +8,10 @@ plugins {
|
||||
group = 'org.egothor.methodatlas'
|
||||
version = gitVersion(prefix:'release@')
|
||||
|
||||
configurations {
|
||||
mockitoAgent
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
@@ -20,10 +24,27 @@ repositories {
|
||||
|
||||
dependencies {
|
||||
implementation 'com.github.javaparser:javaparser-core:3.28.0'
|
||||
implementation 'com.fasterxml.jackson.core:jackson-databind:2.21.1'
|
||||
|
||||
testImplementation(platform("org.junit:junit-bom:5.14.2"))
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
testImplementation 'org.mockito:mockito-core:5.22.0'
|
||||
testImplementation 'org.mockito:mockito-junit-jupiter:5.22.0'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
|
||||
mockitoAgent('org.mockito:mockito-core:5.22.0') {
|
||||
transitive = false
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(Test).configureEach {
|
||||
useJUnitPlatform()
|
||||
jvmArgs "-javaagent:${configurations.mockitoAgent.singleFile}"
|
||||
|
||||
doFirst {
|
||||
println "Mockito agent: ${configurations.mockitoAgent.singleFile}"
|
||||
println "JVM args: ${jvmArgs}"
|
||||
}
|
||||
}
|
||||
|
||||
application {
|
||||
|
||||
Reference in New Issue
Block a user