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)
}