AI Slop Code RIsk Monitor

rest-assured/rest-assured

Java DSL for easy testing of REST services

5.0 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for rest-assured/rest-assured, a Java project with 7,141 GitHub stars. SynthScan examined 130,130 lines of code across 813 source files, recording 149 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 5.0 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

5.0
Adjusted Signal
5.0
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
7.1K
Stars
Java
Language
130.1K
Lines of Code
813
Files
149
Pattern Hits
2026-10-12
Scan Date
0.05
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 0.5/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 10 finding(s).

Hallucinated Dependency & Supply Chain Risk 21.6/100 · LOW

Are imports declared and package/API names verified? 139 finding(s).

Agent Over-Engineering Ratio 0.1/100 · LOW

Are wrappers, guards, and repeated structures necessary? 2 finding(s).

PR Review Velocity Impact 18.1/100 · LOW

Which changes need focused human review? 149 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 41HIGH 0MEDIUM 0LOW 108

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 149 distinct pattern matches across 6 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hallucination Indicators41 hits · 515 pts
SeverityFileLineSnippetContext
CRITICALchangelog.txt902 - io.restassured.module.mockmvc.specification.MockMvcRequestSpecification.resultHandlers (use io.restassured.module.CODE
CRITICALchangelog.txt907* Renamed method com.jayway.restassured.specification.RequestLogSpecification.path(..) to com.jayway.restassured.specifiCOMMENT
CRITICAL…a/io/restassured/internal/support/PathSupportTest.java227 org.junit.jupiter.api.Assertions.assertThrows(NullPointerException.class, () -> PathSupport.mergeAndRemoveDoubleCODE
CRITICAL…a/io/restassured/internal/support/PathSupportTest.java228 org.junit.jupiter.api.Assertions.assertThrows(NullPointerException.class, () -> PathSupport.mergeAndRemoveDoubleCODE
CRITICAL…/io/restassured/internal/RequestSpecificationImpl.java1012 return proxy(new org.apache.http.client.utils.URIBuilder().setHost(host).setPort(port).setScheme(scheme).buiCODE
CRITICAL…gmvc/controller/AutoSpringSecurityConfigurerITest.java136 org.junit.jupiter.api.Assertions.assertThrows(NestedServletException.class, () -> {CODE
CRITICAL⚡…test/java/io/restassured/itest/java/RootPathITest.java260 Throwable thrown = org.assertj.core.api.Assertions.catchThrowable(() ->CODE
CRITICAL⚡…test/java/io/restassured/itest/java/RootPathITest.java263 org.assertj.core.api.Assertions.assertThat(thrown)CODE
CRITICAL⚡…test/java/io/restassured/itest/java/RootPathITest.java270 Throwable thrown = org.assertj.core.api.Assertions.catchThrowable(() ->CODE
CRITICAL⚡…test/java/io/restassured/itest/java/RootPathITest.java273 org.assertj.core.api.Assertions.assertThat(thrown)CODE
CRITICAL…test/java/io/restassured/itest/java/RootPathITest.java313 Throwable thrown = org.assertj.core.api.Assertions.catchThrowable(() ->CODE
CRITICAL…test/java/io/restassured/itest/java/RootPathITest.java320 org.assertj.core.api.Assertions.assertThat(thrown)CODE
CRITICAL…test/java/io/restassured/itest/java/ResponseITest.java49 org.assertj.core.api.Assertions.assertThat(body).isEqualTo("{\"hello\":\"Hello Scalatra\"}");CODE
CRITICAL…test/java/io/restassured/itest/java/ResponseITest.java56 org.assertj.core.api.Assertions.assertThat(actual).isEqualTo(expected);CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java69 org.assertj.core.api.Assertions.assertThat(body).isEqualTo("<greeting><firstName>John</firstName>\n <lastNaCODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java76 org.assertj.core.api.Assertions.assertThat(actual).isEqualTo("23, 42, 127, 123");CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java82 org.assertj.core.api.Assertions.assertThat(actual).isEqualTo("username, token");CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java88 org.assertj.core.api.Assertions.assertThat(body).isEqualTo("a body");CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java94 org.assertj.core.api.Assertions.assertThat(actual).isEqualTo("{\"greeting\":\"Greetings John Doe\"}");CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java100 org.assertj.core.api.Assertions.assertThat(response.getCookies().size()).isEqualTo(3);CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java101 org.assertj.core.api.Assertions.assertThat(response.cookies().size()).isEqualTo(3);CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java102 org.assertj.core.api.Assertions.assertThat(response.getCookie("key1")).isEqualTo("value1");CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java103 org.assertj.core.api.Assertions.assertThat(response.cookie("key2")).isEqualTo("value2");CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java109 org.assertj.core.api.Assertions.assertThat(response.getHeaders().size()).isEqualTo(7);CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java110 org.assertj.core.api.Assertions.assertThat(response.headers().size()).isEqualTo(7);CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java111 org.assertj.core.api.Assertions.assertThat(response.getHeader("Content-Type")).isEqualTo("text/plain;charset=utfCODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java135 final String string = org.apache.commons.io.IOUtils.toString(inputStream, StandardCharsets.UTF_8);CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java143 final String string = org.apache.commons.io.IOUtils.toString(inputStream, StandardCharsets.UTF_8);CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java151 final String string = org.apache.commons.io.IOUtils.toString(inputStream, StandardCharsets.UTF_8);CODE
CRITICAL⚡…test/java/io/restassured/itest/java/ResponseITest.java159 final String string = org.apache.commons.io.IOUtils.toString(inputStream, StandardCharsets.UTF_8);CODE
CRITICAL…test/java/io/restassured/itest/java/ResponseITest.java239 org.assertj.core.api.Assertions.assertThat(response.asString()).isEqualTo("äöü");CODE
CRITICAL…/module/mockmvc/internal/MockMvcRequestSenderImpl.java236 org.springframework.security.core.context.SecurityContextHolder.getContext().setAuthentication((org.springfrCODE
CRITICAL…/module/mockmvc/internal/MockMvcRequestSenderImpl.java283 org.springframework.security.core.context.SecurityContextHolder.clearContext();CODE
CRITICAL…/module/mockmvc/internal/MockMvcRequestSenderImpl.java913 if (io.restassured.http.Method.QUERY.name().equalsIgnoreCase(httpMethodAsString)) {CODE
CRITICAL…/module/mockmvc/internal/MockMvcRequestSenderImpl.java916 org.springframework.web.bind.annotation.RequestMethod.valueOf(httpMethodAsString.toUpperCase(Locale.ROOT));CODE
CRITICAL…/module/mockmvc/internal/MockMvcRequestSenderImpl.java927 return HttpMethod.valueOf(io.restassured.http.Method.QUERY.name());CODE
CRITICAL…estassured/module/mockmvc/internal/MockMvcFactory.java76 final MockMvcConfigurer configurer = org.springframework.security.test.web.servlet.setup.SecurityMocCODE
CRITICAL…/mockmvc/internal/MockMvcRequestSpecificationImpl.java935 throw new IllegalArgumentException("authentication object must be an instance of " + org.springframework.secCODE
CRITICAL…estclient/internal/WebTestClientRequestSenderImpl.java161 if (io.restassured.http.Method.QUERY.name().equalsIgnoreCase(httpMethodAsString)) {CODE
CRITICAL…estclient/internal/WebTestClientRequestSenderImpl.java164 org.springframework.web.bind.annotation.RequestMethod.valueOf(httpMethodAsString.toUpperCase(Locale.ROOT));CODE
CRITICAL…estclient/internal/WebTestClientRequestSenderImpl.java745 return HttpMethod.valueOf(io.restassured.http.Method.QUERY.name());CODE
Fake / Example Data98 hits · 118 pts
SeverityFileLineSnippetContext
LOWchangelog.txt86* Fix path parameters in the Spring WebTestClient module: an unnamed path parameter that isn't a String, e.g. get("/postCOMMENT
LOW…src/main/java/io/restassured/response/Validatable.java31 * body("greeting", equalTo("John Doe"));COMMENT
LOW…est/java/io/restassured/itest/java/PathParamITest.java53 expect().body("fullName", equalTo("John Doe")).when().get("/{firstName}/{lastName}", "John", "Doe");CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java68 body("fullName", equalTo("John Doe"));CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java85 body("fullName", equalTo("John Doe"));CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java150 assertThat(fullName, equalTo("John Doe"));CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java212 body("fullName", equalTo("John Doe")).CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java233 body("fullName", equalTo("John Doe")).CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java257 body("fullName", equalTo("John Doe")).CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java285 body("fullName", equalTo("John Doe")).CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java297 body("fullName", equalTo("John Doe")).CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java309 body("fullName", equalTo("John Doe")).CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java507 body("fullName", equalTo("John Doe"));CODE
LOW…est/java/io/restassured/itest/java/PathParamITest.java520 body("fullName", equalTo("John Doe"));CODE
LOW…/restassured/itest/java/LogIfValidationFailsITest.java221 body("fullName", equalTo("John Doe"));CODE
LOW…/restassured/itest/java/LogIfValidationFailsITest.java236 body("fullName", equalTo("John Doe")).CODE
LOW…/restassured/itest/java/SpecificationBuilderITest.java337 body("fullName", equalTo("John Doe")).CODE
LOW…/restassured/itest/java/SpecificationBuilderITest.java355 body("fullName", equalTo("John Doe"));CODE
LOW…/restassured/itest/java/SpecificationBuilderITest.java409 body("fullName", equalTo("John Doe"));CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java288 body("fullName", equalTo("John Doe")).CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java455 body("fullName", equalTo("John Doe")).CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java533 body("fullName", equalTo("John Doe")).CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java552 body("fullName", equalTo("John Doe")).CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java625 body("fullName", equalTo("John Doe")).CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java653 body("fullName", equalTo("John Doe")).CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java667 "fullName": "John Doe"CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java724 body("fullName", equalTo("John Doe")).CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java743 body("fullName", equalTo("John Doe")).CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java1454 body("fullName", equalTo("John Doe"));CODE
LOW…/test/java/io/restassured/itest/java/LoggingITest.java1483 body("fullName", equalTo("John Doe"));CODE
LOW…/restassured/itest/java/GivenWhenThenLoggingITest.java48 body("fullName", equalTo("John Doe"));CODE
LOW…/restassured/itest/java/GivenWhenThenLoggingITest.java85 body("fullName", equalTo("John Doe"));CODE
LOW…rc/test/java/io/restassured/itest/java/PatchITest.java91 body("fullName", equalTo("John Doe"));CODE
LOW…c/test/java/io/restassured/itest/java/FilterITest.java217 body("fullName", equalTo("John Doe"));CODE
LOW…c/test/java/io/restassured/itest/java/FilterITest.java268 body("fullName", equalTo("John Doe"));CODE
LOW…c/test/java/io/restassured/itest/java/FilterITest.java287 body("fullName", equalTo("John Doe"));CODE
LOW…c/test/java/io/restassured/itest/java/FilterITest.java305 body("fullName", equalTo("John Doe"));CODE
LOW…c/test/java/io/restassured/itest/java/FilterITest.java322 body("fullName", equalTo("John Doe"));CODE
LOW…c/test/java/io/restassured/itest/java/FilterITest.java342 body("fullName", equalTo("John Doe"));CODE
LOW…c/test/java/io/restassured/itest/java/FilterITest.java428 body("fullName", equalTo("John Doe"));CODE
LOW…d/itest/java/presentation/SpecificationsDemoITest.java51 param("name", "John Doe").CODE
LOW…d/itest/java/presentation/SpecificationsDemoITest.java66 param("name", "John Doe").CODE
LOW…a/io/restassured/module/scala/RestAssuredSupport.scala38 * body("greeting", equalTo("John Doe"));COMMENT
LOW…est/java/io/restassured/module/mockmvc/HeaderTest.java50 header(new Header("headerName", "John Doe")).CODE
LOW…est/java/io/restassured/module/mockmvc/HeaderTest.java55 body("headerName", equalTo("John Doe"));CODE
LOW⚡…est/java/io/restassured/module/mockmvc/HeaderTest.java85 header("headerName", "John Doe").CODE
LOW⚡…est/java/io/restassured/module/mockmvc/HeaderTest.java90 body("headerName", equalTo("John Doe"));CODE
LOW⚡…est/java/io/restassured/module/mockmvc/HeaderTest.java96 header("headerName", "John Doe").CODE
LOW⚡…est/java/io/restassured/module/mockmvc/HeaderTest.java102 body("headerName", equalTo("John Doe")).CODE
LOW⚡…est/java/io/restassured/module/mockmvc/HeaderTest.java109 headers.put("headerName", "John Doe");CODE
LOW⚡…est/java/io/restassured/module/mockmvc/HeaderTest.java118 body("headerName", equalTo("John Doe")).CODE
LOW⚡…est/java/io/restassured/module/mockmvc/HeaderTest.java125 headers(new Headers(new Header("headerName", "John Doe"), new Header("user-agent", "rest assured"))).CODE
LOW⚡…est/java/io/restassured/module/mockmvc/HeaderTest.java130 body("headerName", equalTo("John Doe")).CODE
LOW…a/io/restassured/module/mockmvc/ResultHandlerTest.java51 header(new Header("headerName", "John Doe")).CODE
LOW…a/io/restassured/module/mockmvc/ResultHandlerTest.java57 body("headerName", equalTo("John Doe"));CODE
LOW…a/io/restassured/module/mockmvc/ResultHandlerTest.java68 header(new Header("headerName", "John Doe")).CODE
LOW…a/io/restassured/module/mockmvc/ResultHandlerTest.java75 body("headerName", equalTo("John Doe"));CODE
LOW…a/io/restassured/module/mockmvc/ResultHandlerTest.java88 header(new Header("headerName", "John Doe")).CODE
LOW…a/io/restassured/module/mockmvc/ResultHandlerTest.java93 body("headerName", equalTo("John Doe"));CODE
LOW…a/io/restassured/module/mockmvc/ResultHandlerTest.java106 header(new Header("headerName", "John Doe")).CODE
38 more matches not shown…
Slop Phrases4 hits · 6 pts
SeverityFileLineSnippetContext
LOW…ed/module/mockmvc/config/RestAssuredMockMvcConfig.java37 // When adding a config here don't forget to update isUserConfigured methodCOMMENT
LOW…ed/module/mockmvc/config/RestAssuredMockMvcConfig.java412 // When adding a config here don't forget to update merging in MockMvcRequestSpecificationImpl#mergeConfig and pCOMMENT
LOW…btestclient/config/RestAssuredWebTestClientConfig.java37 // When adding a config here don't forget to update isUserConfigured methodCOMMENT
LOW…btestclient/config/RestAssuredWebTestClientConfig.java146 // When adding a config here don't forget to update merging in WebTestClientRequestSpecificationImpl#mergeConfig and pCOMMENT
Over-Commented Block3 hits · 3 pts
SeverityFileLineSnippetContext
LOW.github/FUNDING.yml1# These are supported funding model platformsCOMMENT
LOW…t/java/io/restassured/module/mockmvc/RestDocsTest.java41 // then().COMMENT
LOW…t/java/io/restassured/module/mockmvc/RestDocsTest.java61 // get("/{path}", "greeting").COMMENT
Hyper-Verbose Identifiers2 hits · 2 pts
SeverityFileLineSnippetContext
LOW…test/scala/io.restassured.scala/ScalaMockMvcTest.scala29 def implicit_conversion_works_when_using_the_spring_mock_mvc_module() {CODE
LOW…/restassured/module/scala/RestAssuredSupportTest.scala31 def implicit_conversion_is_applied_when_importing_rest_assured_support_namespace() {CODE
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…ssured/internal/path/json/ConfigurableJsonSlurper.java122 // We need to check if the token is null (this happens if the document to parse is empty, see issue 260).COMMENT