override fun discoverVersions()

in src/main/kotlin/org/jetbrains/tinygoplugin/sdk/TinyGoSdkChooserCombo.kt [60:90]


    override fun discoverVersions(
        os: String,
        arch: String,
        includeAll: Boolean,
        progressIndicator: ProgressIndicator,
        versionConsumer: Consumer<MutableCollection<String>>,
    ): Boolean {
        val tinyGoReleasesUrl = "https://api.github.com/repos/$TINYGO_GITHUB/releases"
        val request = HttpRequests.request(tinyGoReleasesUrl)
        @Suppress("SwallowedException")
        try {
            val response = request.readString(progressIndicator)
            val objectMapper = ObjectMapper()
            val releases = objectMapper.readTree(response)
            if (!releases.isArray) {
                return false
            }
            val versions = releases.asSequence().filter { node ->
                node["assets"].asSequence().filter { asset ->
                    val emulatedArch = osManager.emulatedArch(arch)
                    asset["name"].textValue().matches(Regex(".*[.]($os-($arch|$emulatedArch))[.](tar.gz|zip|deb)"))
                }.any()
            }.map { node ->
                node["tag_name"].textValue()
            }.distinct().map { it.substring(1) }.sorted().toMutableList()
            versionConsumer.accept(versions)
        } catch (e: IOException) {
            return false
        }
        return true
    }