[ {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/dto/ScmOwnerOrganizationDTO.kt",
  "extension" : "kt",
  "linesOfCode" : 48,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/dto/ScmOwnerDTO.kt",
  "extension" : "kt",
  "linesOfCode" : 17,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/dto/ScmOwnerAuthorDTO.kt",
  "extension" : "kt",
  "linesOfCode" : 63,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/ScmOwner.kt",
  "extension" : "kt",
  "linesOfCode" : 28,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/ScmOwnerRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 8,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/ScmOwnerEntity.kt",
  "extension" : "kt",
  "linesOfCode" : 22,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/ScmOwnerRepositoryJdbc.kt",
  "extension" : "kt",
  "linesOfCode" : 173,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/ScmOwnerType.kt",
  "extension" : "kt",
  "linesOfCode" : 16,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/ScmOwnerController.kt",
  "extension" : "kt",
  "linesOfCode" : 57,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/src/main/java/io/klibs/core/owner/ScmOwnerService.kt",
  "extension" : "kt",
  "linesOfCode" : 45,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-owner/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 4,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/suggest/KeywordSuggestionDTO.kt",
  "extension" : "kt",
  "linesOfCode" : 13,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/suggest/SuggestRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 8,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/suggest/SuggestService.kt",
  "extension" : "kt",
  "linesOfCode" : 31,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/suggest/SuggestRepositoryJdbc.kt",
  "extension" : "kt",
  "linesOfCode" : 28,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/dto/validation/TargetGroupValuesValidator.kt",
  "extension" : "kt",
  "linesOfCode" : 24,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/dto/api/SearchPackagesRequest.kt",
  "extension" : "kt",
  "linesOfCode" : 33,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/dto/api/SearchProjectResultDTO.kt",
  "extension" : "kt",
  "linesOfCode" : 74,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/dto/api/SearchPackageResultDTOTargetList.kt",
  "extension" : "kt",
  "linesOfCode" : 65,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/dto/api/SearchProjectsRequest.kt",
  "extension" : "kt",
  "linesOfCode" : 45,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/dto/api/SearchPackageResultDTO.kt",
  "extension" : "kt",
  "linesOfCode" : 66,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/SearchProjectResult.kt",
  "extension" : "kt",
  "linesOfCode" : 19,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/SearchPackageResult.kt",
  "extension" : "kt",
  "linesOfCode" : 19,
  "components" : [ "primary::core" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/ProjectSearchRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 19,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/SearchService.kt",
  "extension" : "kt",
  "linesOfCode" : 84,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/PackageSearchRepositoryJdbc.kt",
  "extension" : "kt",
  "linesOfCode" : 153,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/PackageSearchRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 15,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/SearchUtils.kt",
  "extension" : "kt",
  "linesOfCode" : 30,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/SearchSort.kt",
  "extension" : "kt",
  "linesOfCode" : 16,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/ProjectSearchRepositoryJdbc.kt",
  "extension" : "kt",
  "linesOfCode" : 201,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/search/src/main/kotlin/io/klibs/core/search/SearchController.kt",
  "extension" : "kt",
  "linesOfCode" : 302,
  "components" : [ "primary::core" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "core/search/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 9,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/dto/projection/PackageVersionView.kt",
  "extension" : "kt",
  "linesOfCode" : 11,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/dto/PackageDTO.kt",
  "extension" : "kt",
  "linesOfCode" : 86,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/model/PackagePlatform.kt",
  "extension" : "kt",
  "linesOfCode" : 17,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/model/PackageDetails.kt",
  "extension" : "kt",
  "linesOfCode" : 20,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/model/PackageLicense.kt",
  "extension" : "kt",
  "linesOfCode" : 5,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/model/Configuration.kt",
  "extension" : "kt",
  "linesOfCode" : 34,
  "components" : [ "primary::core" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/model/PackageOverview.kt",
  "extension" : "kt",
  "linesOfCode" : 11,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/model/TargetGroups.kt",
  "extension" : "kt",
  "linesOfCode" : 140,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/model/PackageDeveloper.kt",
  "extension" : "kt",
  "linesOfCode" : 5,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/model/PackageTarget.kt",
  "extension" : "kt",
  "linesOfCode" : 5,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/repository/IndexingRequestRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 49,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/repository/PackageRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 82,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/controller/PackageDescriptionController.kt",
  "extension" : "kt",
  "linesOfCode" : 78,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/controller/PackageController.kt",
  "extension" : "kt",
  "linesOfCode" : 164,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/service/PackageDescriptionService.kt",
  "extension" : "kt",
  "linesOfCode" : 110,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/service/PackageService.kt",
  "extension" : "kt",
  "linesOfCode" : 86,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/service/PackageDescriptionBatchService.kt",
  "extension" : "kt",
  "linesOfCode" : 46,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/entity/PackageEntity.kt",
  "extension" : "kt",
  "linesOfCode" : 120,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/entity/PackageTargetEntity.kt",
  "extension" : "kt",
  "linesOfCode" : 31,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/entity/IndexingRequestEntity.kt",
  "extension" : "kt",
  "linesOfCode" : 42,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/api/PackageDetailsResponse.kt",
  "extension" : "kt",
  "linesOfCode" : 79,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/api/PackageTargetResponse.kt",
  "extension" : "kt",
  "linesOfCode" : 25,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/api/PackageOverviewResponse.kt",
  "extension" : "kt",
  "linesOfCode" : 40,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/api/UpdateDescriptionRequest.kt",
  "extension" : "kt",
  "linesOfCode" : 4,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/api/OptionalLinkResponse.kt",
  "extension" : "kt",
  "linesOfCode" : 18,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/src/main/kotlin/io/klibs/core/pckg/util/PgUtils.kt",
  "extension" : "kt",
  "linesOfCode" : 32,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/package/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 8,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/ScmRepositoryRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 12,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/ScmRepositoryEntity.kt",
  "extension" : "kt",
  "linesOfCode" : 28,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/ScmRepositoryRepositoryJdbc.kt",
  "extension" : "kt",
  "linesOfCode" : 328,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/readme/ReadmeProcessor.kt",
  "extension" : "kt",
  "linesOfCode" : 10,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/readme/S3ReadmeService.kt",
  "extension" : "kt",
  "linesOfCode" : 33,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/readme/impl/LinksHtmlReadmeProcessor.kt",
  "extension" : "kt",
  "linesOfCode" : 9,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/readme/impl/LinksBaseReadmeProcessor.kt",
  "extension" : "kt",
  "linesOfCode" : 65,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/readme/impl/LinksMarkdownReadmeProcessor.kt",
  "extension" : "kt",
  "linesOfCode" : 58,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/readme/impl/ReadmeMinimizationProcessor.kt",
  "extension" : "kt",
  "linesOfCode" : 54,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/readme/ReadmeService.kt",
  "extension" : "kt",
  "linesOfCode" : 6,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/readme/ReadmeConfigurationProperties.kt",
  "extension" : "kt",
  "linesOfCode" : 13,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/readme/ReadmeType.kt",
  "extension" : "kt",
  "linesOfCode" : 6,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/src/main/kotlin/io/klibs/core/scm/repository/ScmRepositoryConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 7,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/scm-repository/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 11,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/storage/src/main/kotlin/io/klibs/core/storage/S3StorageService.kt",
  "extension" : "kt",
  "linesOfCode" : 33,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/storage/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 3,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/ProjectDetails.kt",
  "extension" : "kt",
  "linesOfCode" : 49,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/blacklist/BlacklistService.kt",
  "extension" : "kt",
  "linesOfCode" : 54,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/blacklist/BlacklistRepositoryJdbc.kt",
  "extension" : "kt",
  "linesOfCode" : 127,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/blacklist/BlacklistController.kt",
  "extension" : "kt",
  "linesOfCode" : 50,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/blacklist/BlacklistRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 8,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/enums/TagOrigin.kt",
  "extension" : "kt",
  "linesOfCode" : 6,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/enums/MarkerType.kt",
  "extension" : "kt",
  "linesOfCode" : 6,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/tags/TagStatisticsDTO.kt",
  "extension" : "kt",
  "linesOfCode" : 26,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/tags/TagService.kt",
  "extension" : "kt",
  "linesOfCode" : 11,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/tags/TagsController.kt",
  "extension" : "kt",
  "linesOfCode" : 28,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/repository/ProjectRepositoryJdbc.kt",
  "extension" : "kt",
  "linesOfCode" : 161,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/repository/TagRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 6,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/repository/AllowedProjectTagsRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 18,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/repository/ProjectRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 13,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/repository/ProjectTagRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 9,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/repository/MarkerRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 7,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/repository/TagRepositoryJdbc.kt",
  "extension" : "kt",
  "linesOfCode" : 56,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/ProjectEntity.kt",
  "extension" : "kt",
  "linesOfCode" : 11,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/ProjectDetailsDTO.kt",
  "extension" : "kt",
  "linesOfCode" : 115,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/ProjectController.kt",
  "extension" : "kt",
  "linesOfCode" : 134,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/entity/Marker.kt",
  "extension" : "kt",
  "linesOfCode" : 16,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/entity/AllowedProjectTagEntity.kt",
  "extension" : "kt",
  "linesOfCode" : 17,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/entity/TagEntity.kt",
  "extension" : "kt",
  "linesOfCode" : 29,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "core/project/src/main/kotlin/io/klibs/core/project/ProjectService.kt",
  "extension" : "kt",
  "linesOfCode" : 110,
  "components" : [ "primary::core" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "core/project/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 10,
  "components" : [ "primary::core" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-settings-logic/settings.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 6,
  "components" : [ "primary::build-settings-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-settings-logic/src/main/kotlin/Utils.kt",
  "extension" : "kt",
  "linesOfCode" : 19,
  "components" : [ "primary::build-settings-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-settings-logic/src/main/kotlin/klibs-build-scan.settings.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 32,
  "components" : [ "primary::build-settings-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-settings-logic/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 6,
  "components" : [ "primary::build-settings-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "settings.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 34,
  "components" : [ "primary::ROOT" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "gradle/libs.versions.toml",
  "extension" : "toml",
  "linesOfCode" : 85,
  "components" : [ "primary::gradle" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/indexing/GitHubIndexingService.kt",
  "extension" : "kt",
  "linesOfCode" : 332,
  "components" : [ "primary::app" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/indexing/PackageIndexingService.kt",
  "extension" : "kt",
  "linesOfCode" : 357,
  "components" : [ "primary::app" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/indexing/discoverer/impl/CentralSonatypePackageDiscoverer.kt",
  "extension" : "kt",
  "linesOfCode" : 90,
  "components" : [ "primary::app" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/indexing/discoverer/impl/GoogleMavenPackageDiscoverer.kt",
  "extension" : "kt",
  "linesOfCode" : 185,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/indexing/discoverer/PackageDiscoverer.kt",
  "extension" : "kt",
  "linesOfCode" : 9,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/indexing/ProjectIndexingService.kt",
  "extension" : "kt",
  "linesOfCode" : 140,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/Application.kt",
  "extension" : "kt",
  "linesOfCode" : 17,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/job/ProcessPackageIndexRequestJob.kt",
  "extension" : "kt",
  "linesOfCode" : 19,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/job/GitHubRepositoryUpdatingJob.kt",
  "extension" : "kt",
  "linesOfCode" : 55,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/job/MaterializedViewUpdatingJob.kt",
  "extension" : "kt",
  "linesOfCode" : 16,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/job/GitHubOwnerUpdatingJob.kt",
  "extension" : "kt",
  "linesOfCode" : 18,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/job/AddAiMetadataForProjectJob.kt",
  "extension" : "kt",
  "linesOfCode" : 24,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/job/IndexNewPackagesJob.kt",
  "extension" : "kt",
  "linesOfCode" : 17,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/controller/PingController.kt",
  "extension" : "kt",
  "linesOfCode" : 8,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/controller/DebugController.kt",
  "extension" : "kt",
  "linesOfCode" : 15,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/WebConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 17,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/JacksonConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 20,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/SchedulingConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 23,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/properties/ApiDocsProperties.kt",
  "extension" : "kt",
  "linesOfCode" : 8,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/properties/AuthProperties.kt",
  "extension" : "kt",
  "linesOfCode" : 12,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/properties/GoogleMavenCacheConfigurationProperties.kt",
  "extension" : "kt",
  "linesOfCode" : 13,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/ExecutorServiceConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 21,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/MetricsConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 65,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/SecurityConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 72,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/GlobalExceptionHandler.kt",
  "extension" : "kt",
  "linesOfCode" : 31,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/configuration/ApiDocsConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 38,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/service/impl/S3GoogleMavenCacheService.kt",
  "extension" : "kt",
  "linesOfCode" : 28,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/service/GoogleMavenCacheService.kt",
  "extension" : "kt",
  "linesOfCode" : 6,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/config/BackoffConfig.kt",
  "extension" : "kt",
  "linesOfCode" : 25,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/util/TagUtils.kt",
  "extension" : "kt",
  "linesOfCode" : 9,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/util/instant/InstantRepositoryJdbc.kt",
  "extension" : "kt",
  "linesOfCode" : 27,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/util/instant/InstantRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 6,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/util/CommonUtils.kt",
  "extension" : "kt",
  "linesOfCode" : 13,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/util/AndroidJetpackUtils.kt",
  "extension" : "kt",
  "linesOfCode" : 8,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/util/BackoffProvider.kt",
  "extension" : "kt",
  "linesOfCode" : 49,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/kotlin/io/klibs/app/util/GitHubUtils.kt",
  "extension" : "kt",
  "linesOfCode" : 12,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q3/2025-10-09_filter_project_tags_by_allowed_list.sql",
  "extension" : "sql",
  "linesOfCode" : 11,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q3/2025-09-30_recreate_project_index_with_project_tags.sql",
  "extension" : "sql",
  "linesOfCode" : 63,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-04-23_package_index_concurrent.sql",
  "extension" : "sql",
  "linesOfCode" : 33,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-04-25_package_index_latest.sql",
  "extension" : "sql",
  "linesOfCode" : 47,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-06-03_add_targets_vector_to_project_index.sql",
  "extension" : "sql",
  "linesOfCode" : 52,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-06-04_add_targets_vector_to_package_index.sql",
  "extension" : "sql",
  "linesOfCode" : 51,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-05-05_package_index_targets.sql",
  "extension" : "sql",
  "linesOfCode" : 50,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-05-05_added_markers_in_project_index.sql",
  "extension" : "sql",
  "linesOfCode" : 49,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-03-04_add_error_description_to_package_indexing.yaml",
  "extension" : "yaml",
  "linesOfCode" : 17,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-05-13_change_platform_collecting_in_project_index.sql",
  "extension" : "sql",
  "linesOfCode" : 49,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-04-04_package_index.sql",
  "extension" : "sql",
  "linesOfCode" : 38,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-06-03_package_index_targets_underscore.sql",
  "extension" : "sql",
  "linesOfCode" : 50,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q2/2025-05.05-add-initial-project-markers.sql",
  "extension" : "sql",
  "linesOfCode" : 42,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q1/2025-03-04_remove_converting_dashed_to_points_in_project_index.sql",
  "extension" : "sql",
  "linesOfCode" : 42,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q1/2025-02-03_add_minimized_readme_to_project_index.sql",
  "extension" : "sql",
  "linesOfCode" : 40,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2025-Q1/2025-01-29_remove_project_tags_join_from_project_index.sql",
  "extension" : "sql",
  "linesOfCode" : 39,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2024-Q4/2024-12-15_009_fix_sequences.sql",
  "extension" : "sql",
  "linesOfCode" : 14,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2024-Q4/2024-12-17_project_index_replace_dashes_with_dots.sql",
  "extension" : "sql",
  "linesOfCode" : 40,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2024-Q4/2024-12-15_007_suggest_words.sql",
  "extension" : "sql",
  "linesOfCode" : 6,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2024-Q4/2024-12-16_project_index_tags.sql",
  "extension" : "sql",
  "linesOfCode" : 40,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2024-Q4/2024-12-15_011_project_tags_fill_column_with_tags.sql",
  "extension" : "sql",
  "linesOfCode" : 8,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/src/main/resources/db/migration/2024-Q4/2024-12-15_010_project_index.sql",
  "extension" : "sql",
  "linesOfCode" : 36,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "app/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 26,
  "components" : [ "primary::app" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/MavenArtifact.kt",
  "extension" : "kt",
  "linesOfCode" : 9,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/MavenIntegrationConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 8,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/request/impl/MavenCentralRateLimiter.kt",
  "extension" : "kt",
  "linesOfCode" : 41,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/request/impl/UnlimitedRateLimiter.kt",
  "extension" : "kt",
  "linesOfCode" : 9,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/request/RequestRateLimiter.kt",
  "extension" : "kt",
  "linesOfCode" : 4,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/health/MavenIntegrationInfoContributor.kt",
  "extension" : "kt",
  "linesOfCode" : 27,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/MavenStaticDataProvider.kt",
  "extension" : "kt",
  "linesOfCode" : 14,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/search/impl/BaseMavenSearchClient.kt",
  "extension" : "kt",
  "linesOfCode" : 211,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/search/impl/GoogleMavenSearchClient.kt",
  "extension" : "kt",
  "linesOfCode" : 40,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/search/impl/SonatypeDiscoverSearchClient.kt",
  "extension" : "kt",
  "linesOfCode" : 124,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/search/impl/CentralSonatypeSearchClient.kt",
  "extension" : "kt",
  "linesOfCode" : 213,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/search/MavenSearchClient.kt",
  "extension" : "kt",
  "linesOfCode" : 19,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/ScraperType.kt",
  "extension" : "kt",
  "linesOfCode" : 6,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/scraper/impl/CentralSonatypeScraper.kt",
  "extension" : "kt",
  "linesOfCode" : 118,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/scraper/MavenCentralScraper.kt",
  "extension" : "kt",
  "linesOfCode" : 17,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/delegate/KotlinToolingMetadataDelegateImpl.kt",
  "extension" : "kt",
  "linesOfCode" : 15,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/delegate/KotlinToolingMetadataDelegate.kt",
  "extension" : "kt",
  "linesOfCode" : 9,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/delegate/KotlinToolingMetadataDelegateStubImpl.kt",
  "extension" : "kt",
  "linesOfCode" : 45,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/MavenCentralProperties.kt",
  "extension" : "kt",
  "linesOfCode" : 14,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/androidx/GoogleMavenMasterIndexMetadataXmlDeserializer.kt",
  "extension" : "kt",
  "linesOfCode" : 31,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/androidx/GoogleMavenMasterIndexMetadata.kt",
  "extension" : "kt",
  "linesOfCode" : 15,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/src/main/kotlin/io/klibs/integration/maven/androidx/GradleMetadata.kt",
  "extension" : "kt",
  "linesOfCode" : 34,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/maven/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 15,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/GitHubIntegrationKohsukeLibrary.kt",
  "extension" : "kt",
  "linesOfCode" : 211,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/model/ReadmeFetchResult.kt",
  "extension" : "kt",
  "linesOfCode" : 7,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/model/GitHubLicense.kt",
  "extension" : "kt",
  "linesOfCode" : 5,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/model/GitHubUser.kt",
  "extension" : "kt",
  "linesOfCode" : 14,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/model/GitHubRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 17,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/health/GitHubRateLimitInfo.kt",
  "extension" : "kt",
  "linesOfCode" : 7,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/health/GitHubIntegrationInfoContributor.kt",
  "extension" : "kt",
  "linesOfCode" : 31,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/GitHubIntegrationConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 39,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/GitHubIntegrationProperties.kt",
  "extension" : "kt",
  "linesOfCode" : 13,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/src/main/kotlin/io/klibs/integration/github/GitHubIntegration.kt",
  "extension" : "kt",
  "linesOfCode" : 22,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/github/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 9,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/ai/src/main/kotlin/io/klibs/integration/ai/DumbAiService.kt",
  "extension" : "kt",
  "linesOfCode" : 15,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/ai/src/main/kotlin/io/klibs/integration/ai/AiService.kt",
  "extension" : "kt",
  "linesOfCode" : 15,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/ai/src/main/kotlin/io/klibs/integration/ai/ChatGptSpringAiService.kt",
  "extension" : "kt",
  "linesOfCode" : 56,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/ai/src/main/kotlin/io/klibs/integration/ai/ProjectDescriptionGenerator.kt",
  "extension" : "kt",
  "linesOfCode" : 38,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/ai/src/main/kotlin/io/klibs/integration/ai/ProjectTagsGenerator.kt",
  "extension" : "kt",
  "linesOfCode" : 131,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/ai/src/main/kotlin/io/klibs/integration/ai/AiIntegrationConfiguration.kt",
  "extension" : "kt",
  "linesOfCode" : 27,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/ai/src/main/kotlin/io/klibs/integration/ai/PackageDescriptionGenerator.kt",
  "extension" : "kt",
  "linesOfCode" : 61,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/ai/src/main/resources/ai/prompts/tag_rules.yaml",
  "extension" : "yaml",
  "linesOfCode" : 1087,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "integrations/ai/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 8,
  "components" : [ "primary::integrations" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/settings.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 16,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/src/main/kotlin/klibs.persistence.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 11,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/src/main/kotlin/klibs.kotlin-jvm.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 14,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/src/main/kotlin/klibs.spring-web.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 10,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/src/main/kotlin/klibs.spring.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 28,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/src/main/kotlin/klibs.mock.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 7,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/src/main/kotlin/klibs.spring-scheduling.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 7,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/src/main/kotlin/klibs.spring-cloud.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 6,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/src/main/kotlin/klibs.base.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 4,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build-logic/build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 6,
  "components" : [ "primary::build-logic" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "build.gradle.kts",
  "extension" : "kts",
  "linesOfCode" : 7,
  "components" : [ "primary::ROOT" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "scripts/kubernetes/apply-prod-dump-on-klibs-features-environment-job.yaml",
  "extension" : "yaml",
  "linesOfCode" : 49,
  "components" : [ "primary::scripts" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "scripts/kubernetes/create-prod-dump-cronjob.yaml",
  "extension" : "yaml",
  "linesOfCode" : 42,
  "components" : [ "primary::scripts" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "scripts/get_tags_prompt.ipynb",
  "extension" : "ipynb",
  "linesOfCode" : 616,
  "components" : [ "primary::scripts" ],
  "concerns" : [ "::Unclassified" ]
} ]