{"results":{"result":{"added-files":{"code-health":0.0,"old-code-health":0.0,"files":[]},"external-review-url":"https://github.com/umbraco/Umbraco-CMS/pull/19720","old-code-health":6.2259026330699925,"modified-files":{"code-health":6.162497339278174,"old-code-health":6.2259026330699925,"files":[{"file":"src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepository.cs","loc":225,"old-loc":223,"code-health":9.6882083290695,"old-code-health":9.6882083290695},{"file":"src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs","loc":1088,"old-loc":1063,"code-health":3.6341473051452367,"old-code-health":3.826601756125964},{"file":"src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaTypeRepository.cs","loc":99,"old-loc":97,"code-health":9.6882083290695,"old-code-health":9.6882083290695},{"file":"src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberTypeRepository.cs","loc":186,"old-loc":184,"code-health":9.6882083290695,"old-code-health":9.6882083290695},{"file":"tests/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs","loc":134,"old-loc":133,"code-health":10.0,"old-code-health":10.0},{"file":"tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/DocumentRepositoryTest.cs","loc":821,"old-loc":821,"code-health":6.610041038724807,"old-code-health":6.610041038724807},{"file":"tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaRepositoryTest.cs","loc":408,"old-loc":408,"code-health":8.283981080161325,"old-code-health":8.283981080161325},{"file":"tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MediaTypeRepositoryTest.cs","loc":299,"old-loc":298,"code-health":9.096655465156704,"old-code-health":9.096655465156704},{"file":"tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/MemberTypeRepositoryTest.cs","loc":218,"old-loc":217,"code-health":9.387218218812514,"old-code-health":9.387218218812514},{"file":"tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TemplateRepositoryTest.cs","loc":475,"old-loc":475,"code-health":9.387218218812514,"old-code-health":9.387218218812514},{"file":"tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentTypeServiceTests.cs","loc":1706,"old-loc":1655,"code-health":3.8726164970304313,"old-code-health":3.8726164970304313}]},"removed-files":{"code-health":0.0,"old-code-health":0.0,"files":[]},"external-review-id":"19720","analysis-time":"2025-07-15T10:21:35Z","negative-impact-count":1,"suppressions":{"number-of-types":0,"number-of-files-touched":0,"findings":[]},"affected-hotspots":0,"commits":["58e26e6d3bec910dbff99aba5013fec387973036","296e8de3ff6f1b41be294be96525a0b5cf086002"],"is-negative-review":true,"negative-findings":{"number-of-types":1,"number-of-files-touched":1,"findings":[{"why-it-occurs":"This module has 1020 lines of code (comments stripped away). This puts the module at risk of evolving into a Brain Class. Brain Classes are problematic since changes become more complex over time, harder to test, and challenging to refactor. Act now to prevent future maintenance issues.","name":"Lines of Code in a Single File","file":"src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs","refactoring-examples":null,"change-level":"warning","is-hotspot?":false,"what-changed":"This module has 1020 lines of code, improve code health by reducing it to 1000","how-to-fix":"Look for opportunities to modularize the design. This is done by identifying groups of functions that represent different responsibilities and/or operate on different data. Once you have identified the different responsibilities, then use refactorings like [EXTRACT CLASS](https://refactoring.com/catalog/extractClass.html).","change-type":"introduced"}]},"positive-impact-count":1,"repo":"Umbraco-CMS","code-health":6.162497339278174,"version":"3.0","authors":["Andy Butland","kjac"],"directives":{"added":[],"removed":[]},"positive-findings":{"number-of-types":1,"number-of-files-touched":1,"findings":[{"name":"Primitive Obsession","file":"src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs","change-type":"improved","change-level":"improvement","is-hotspot?":false,"why-it-occurs":"Code that uses a high degree of built-in, primitives such as integers, strings, floats, lacks a domain language that encapsulates the validation and semantics of function arguments. Primitive Obsession has several consequences: 1) In a statically typed language, the compiler will detect less erroneous assignments. 2) Security impact since the possible value range of a variable/argument isn't retricted.\n\nIn this module, 32 % of all functions have primitive types as arguments.","how-to-fix":"Primitive Obsession indicates a missing domain language. Introduce data types that encapsulate the details and constraints of your domain. For example, instead of `int userId`, consider `User clicked`.","what-changed":"The ratio of primitive types in function arguments decreases from 32.69% to 32.08%, threshold = 30.0%"}]},"notices":{"number-of-types":0,"number-of-files-touched":0,"findings":[]},"external-review-provider":"GitHub"},"analysistime":"2025-07-15T10:21:35.000Z","project-name":"Umbraco-CMS","repository":"https://github.com/umbraco/Umbraco-CMS.git"}}