diff --git a/src/main/kotlin/io/github/thewisenerd/linters/sidekt/rules/SQLQuerySniffer.kt b/src/main/kotlin/io/github/thewisenerd/linters/sidekt/rules/SQLQuerySniffer.kt
index dcb982b..9bc9aa5 100644
--- a/src/main/kotlin/io/github/thewisenerd/linters/sidekt/rules/SQLQuerySniffer.kt
+++ b/src/main/kotlin/io/github/thewisenerd/linters/sidekt/rules/SQLQuerySniffer.kt
@@ -65,11 +65,12 @@ class SQLQuerySniffer(config: Config): Rule(config) {
if (sniffSQLAnnotation.contains(annotationValue)) {
val sqlQuery = it.originalElement.text.preProcessAnnotation(annotationValue)
val metaDataComment = prepareFunctionParamsWithStore(sqlQuery, function)
+ val linkPrefix = generateAnalyserLink()
report(
CodeSmell(
issue = issue,
entity = Entity.Companion.from(function),
- message = metaDataComment
+ message = "${metaDataComment}
[Click to Analyse Query](${linkPrefix})"
)
)
}
@@ -239,8 +240,28 @@ class SQLQuerySniffer(config: Config): Rule(config) {
}
}
+ private fun generateAnalyserLink(): String {
+ val baseLink = ruleSetConfig
+ .valueOrNull("analyser-link")
+ ?: "https://tools.udaan.dev/infraprobs/docs-analyser/github-analyser"
+ val prNumber = System.getenv("GH_PR_NUMBER") ?: ""
+ val repoName = System.getenv("GH_REPO") ?: ""
+ return if (prNumber.isNotEmpty() && repoName.isNotEmpty()) {
+ listOf(
+ "" to repoName,
+ "" to prNumber
+ ).fold(GITHUB_PR_URL_TEMPLATE) { s: String, it: Pair ->
+ s.replace(it.first, it.second)
+ }.let { prUrl ->
+ "${baseLink}?githubPrUrl=${prUrl}"
+ }
+ } else baseLink
+ }
+
companion object {
+ private const val GITHUB_PR_URL_TEMPLATE = "https://github.com/udaan-com//pull/"
+
private val UDAAN_PACKAGE_DETECT_REGEX = "com.udaan.*".toRegex()
private val sqlBindTypes = listOf(