fun publish()

in buildSrc/src/main/kotlin/com/uber/nanoscope/release/GitHubRelease.kt [71:98]


    fun publish(): GitHubRelease {
        val commitHash = getCommitHash()
        val bodyMap = mapOf(
                "tag_name" to version.toString(),
                "target_commitish" to commitHash,
                "name" to version.toString(),
                "body" to "$version release of Nanoscope",
                "draft" to false,
                "prerelease" to (version.major == 0))
        val body = Moshi.Builder().build().adapter(Map::class.java).toJson(bodyMap)
        val result = "https://api.github.com/repos/uber/nanoscope/releases"
                .httpPost()
                .authGitHub()
                .body(body)
                .json()

        val zipName = "nanoscope-$version.zip"
        val uploadUrl = result["upload_url"].toString().replace("{?name,label}", "?name=$zipName")
        val bytes = distZip.readBytes()
        val response = uploadUrl.httpPost()
                .authGitHub()
                .header("Content-Type" to "application/zip")
                .body(bytes)
                .json()

        val downloadUrl = response["browser_download_url"].toString()
        return GitHubRelease(downloadUrl, bytes)
    }