[ {
  "relativePath" : "teamcity-plugin.xml",
  "extension" : "xml",
  "linesOfCode" : 13,
  "components" : [ "primary::ROOT" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "hmac.ru",
  "extension" : "ru",
  "linesOfCode" : 18,
  "components" : [ "primary::ROOT" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/test-integration/kotlin/org/jetbrains/teamcity/github/WebHooksStorageIntegrationTest.kt",
  "extension" : "kt",
  "linesOfCode" : 71,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/test-integration/kotlin/org/jetbrains/teamcity/github/MockHealthStatusItemConsumer.kt",
  "extension" : "kt",
  "linesOfCode" : 45,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/test-integration/kotlin/org/jetbrains/teamcity/github/IntegrationUtilTest.kt",
  "extension" : "kt",
  "linesOfCode" : 132,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/test-integration/kotlin/org/jetbrains/teamcity/github/GitHubWebHookSuggestionTest.kt",
  "extension" : "kt",
  "linesOfCode" : 159,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/WebHooksManager.kt",
  "extension" : "kt",
  "linesOfCode" : 91,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/Constants.kt",
  "extension" : "kt",
  "linesOfCode" : 5,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/GitHubWebHookSuggestion.kt",
  "extension" : "kt",
  "linesOfCode" : 62,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/WebHooksStorage.kt",
  "extension" : "kt",
  "linesOfCode" : 250,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/controllers/InstallWebhookTab.kt",
  "extension" : "kt",
  "linesOfCode" : 120,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/controllers/HMacUtil.kt",
  "extension" : "kt",
  "linesOfCode" : 25,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/controllers/WebHooksController.kt",
  "extension" : "kt",
  "linesOfCode" : 470,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/controllers/EditProjectWebHooksTab.kt",
  "extension" : "kt",
  "linesOfCode" : 272,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/controllers/ForceWebhooksCheckController.kt",
  "extension" : "kt",
  "linesOfCode" : 23,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/controllers/SuitableRepositoriesPopup.kt",
  "extension" : "kt",
  "linesOfCode" : 45,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/controllers/PullRequestMergeBranchChecker.kt",
  "extension" : "kt",
  "linesOfCode" : 140,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/controllers/GitHubWebHookListener.kt",
  "extension" : "kt",
  "linesOfCode" : 301,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/HookKey.kt",
  "extension" : "kt",
  "linesOfCode" : 36,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/TokensHelper.kt",
  "extension" : "kt",
  "linesOfCode" : 66,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/json/SimpleDateTypeAdapter.kt",
  "extension" : "kt",
  "linesOfCode" : 22,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/json/HookInfoTypeAdapter.kt",
  "extension" : "kt",
  "linesOfCode" : 28,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/json/OAuthTokenJsonSerializer.kt",
  "extension" : "kt",
  "linesOfCode" : 21,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/Util.kt",
  "extension" : "kt",
  "linesOfCode" : 248,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/WebHookHealthItem.kt",
  "extension" : "kt",
  "linesOfCode" : 9,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/AuthDataStorage.kt",
  "extension" : "kt",
  "linesOfCode" : 220,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/WebhookPeriodicalChecker.kt",
  "extension" : "kt",
  "linesOfCode" : 280,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/GitHubWebHookIncorrectPageExtension.kt",
  "extension" : "kt",
  "linesOfCode" : 22,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/WebHookInfo.kt",
  "extension" : "kt",
  "linesOfCode" : 64,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/SetupFromUrlGitHubWebhooksExtension.kt",
  "extension" : "kt",
  "linesOfCode" : 73,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/GitHubRepositoryInfo.kt",
  "extension" : "kt",
  "linesOfCode" : 49,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/GitHubAccessException.kt",
  "extension" : "kt",
  "linesOfCode" : 11,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/GitHubWebHookSuggestionPageExtension.kt",
  "extension" : "kt",
  "linesOfCode" : 41,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/action/DeleteWebHookAction.kt",
  "extension" : "kt",
  "linesOfCode" : 72,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/action/GetAllWebHooksAction.kt",
  "extension" : "kt",
  "linesOfCode" : 51,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/action/ActionContext.kt",
  "extension" : "kt",
  "linesOfCode" : 112,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/action/GetPullRequestDetailsAction.kt",
  "extension" : "kt",
  "linesOfCode" : 37,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/action/CreateWebHookAction.kt",
  "extension" : "kt",
  "linesOfCode" : 116,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/action/results.kt",
  "extension" : "kt",
  "linesOfCode" : 9,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/action/TestWebHookAction.kt",
  "extension" : "kt",
  "linesOfCode" : 26,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/RepoKey.kt",
  "extension" : "kt",
  "linesOfCode" : 21,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/helpers.kt",
  "extension" : "kt",
  "linesOfCode" : 37,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/util/FakeHttpSession.kt",
  "extension" : "kt",
  "linesOfCode" : 80,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/util/WebHooksHelper.kt",
  "extension" : "kt",
  "linesOfCode" : 52,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/util/LayeredHttpServletRequest.kt",
  "extension" : "kt",
  "linesOfCode" : 53,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/github/util/GitHubRepository.kt",
  "extension" : "kt",
  "linesOfCode" : 3,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/kotlin/org/jetbrains/teamcity/impl/RestApiFacade.kt",
  "extension" : "kt",
  "linesOfCode" : 86,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/eclipse/egit/github/core/PullRequestEx.java",
  "extension" : "java",
  "linesOfCode" : 15,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/eclipse/egit/github/core/service/PullRequestServiceEx.java",
  "extension" : "java",
  "linesOfCode" : 25,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/eclipse/egit/github/core/service/RepositoryServiceEx.java",
  "extension" : "java",
  "linesOfCode" : 29,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/eclipse/egit/github/core/RepositoryHookEx.java",
  "extension" : "java",
  "linesOfCode" : 13,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/eclipse/egit/github/core/event/PingWebHookPayload.java",
  "extension" : "java",
  "linesOfCode" : 44,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/eclipse/egit/github/core/event/PullRequestPayloadEx.java",
  "extension" : "java",
  "linesOfCode" : 30,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/eclipse/egit/github/core/event/PushWebHookPayload.java",
  "extension" : "java",
  "linesOfCode" : 106,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/eclipse/egit/github/core/client/GsonUtilsEx.java",
  "extension" : "java",
  "linesOfCode" : 50,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/eclipse/egit/github/core/client/AnyDateFormatter.java",
  "extension" : "java",
  "linesOfCode" : 23,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/jetbrains/teamcity/impl/fakes/FakeHttpRequestsFactory.java",
  "extension" : "java",
  "linesOfCode" : 22,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/jetbrains/teamcity/impl/fakes/FakeHttpSession.java",
  "extension" : "java",
  "linesOfCode" : 87,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/jetbrains/teamcity/impl/fakes/FakeHttpServletResponse.java",
  "extension" : "java",
  "linesOfCode" : 215,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/jetbrains/teamcity/impl/fakes/FakeRequestDispatcher.java",
  "extension" : "java",
  "linesOfCode" : 12,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/java/org/jetbrains/teamcity/impl/fakes/FakeHttpServletRequest.java",
  "extension" : "java",
  "linesOfCode" : 430,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/META-INF/build-server-plugin.xml",
  "extension" : "xml",
  "linesOfCode" : 28,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/installPage.jsp",
  "extension" : "jsp",
  "linesOfCode" : 74,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/suitableRepositoriesPopup.jsp",
  "extension" : "jsp",
  "linesOfCode" : 23,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/gh-webhook-incorrect-health-item.jsp",
  "extension" : "jsp",
  "linesOfCode" : 14,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/editProjectWebHooksTab.jsp",
  "extension" : "jsp",
  "linesOfCode" : 7,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/webhook.css",
  "extension" : "css",
  "linesOfCode" : 56,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/installWebhookAction.jsp",
  "extension" : "jsp",
  "linesOfCode" : 7,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/editProjectWebHooks.jsp",
  "extension" : "jsp",
  "linesOfCode" : 202,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/gh-webhook-health-item.jsp",
  "extension" : "jsp",
  "linesOfCode" : 43,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/gh-webhook.js",
  "extension" : "js",
  "linesOfCode" : 538,
  "components" : [ "primary::src" ],
  "concerns" : [ "::TODOs" ]
}, {
  "relativePath" : "src/main/resources/buildServerResources/tokenGranted.jsp",
  "extension" : "jsp",
  "linesOfCode" : 20,
  "components" : [ "primary::src" ],
  "concerns" : [ "::Unclassified" ]
} ]