/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 . ĠChristian ĠGr ach Ġ< ch rist ian . gr ach @ cm g apps . com > Ċ Ġ* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ Ċ package Ġcom . cm g apps . gradle Ċ Ċ import Ġis CI Ċ import Ġkotlinx . serialization . Serial Name Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . encode ToString Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġokhttp 3 . MediaType . Companion . to MediaType Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . RequestBody . Companion . to RequestBody Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġorg . gradle . api . Project Ċ import Ġjava . io . IOException Ċ Ċ fun ĠProject . send Create Release Request ( version : ĠString , Ġbody : ĠString ): ĠResponse ? Ġ{ ĊĠĠĠ Ġval Ġrequest Ġ= ĊĠĠĠĠĠĠĠ ĠRequest . Builder (). url (" https :// api . github . com / repos / ch ri ma eon / app - r ater / releases ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" Accept ", Ġ" application / vnd . github . v 3 + json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Authorization ", Ġ" token Ġ" Ġ+ Ġroot Project . file (" GITHUB _ TOKEN "). read Text (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson . encode ToString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGithub Release Notes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtagName Ġ= Ġversion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġversion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraft Ġ= Ġ! is CI (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġbody ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). to RequestBody (" application / json ". to MediaType ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġval Ġlogging Interceptor : ĠHttp Logging Interceptor Ġ= ĊĠĠĠĠĠĠĠ ĠHttp Logging Interceptor Ġ{ Ġmessage Ġ-> Ġlogger . info ( message ) Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġ. add Interceptor ( logging Interceptor ) ĊĠĠĠĠĠĠĠ Ġ. build (). new Call ( request ). execute (). use Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! response . is Successful ) Ġthrow ĠIOException (" Unexpected Ġresponse : Ġ$ response ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ġ{ Ġignore Unknown Keys Ġ= Ġtrue Ġ}. decode FromString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ?. string () Ġ?: Ġreturn @ use Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠGithub Release Notes ( ĊĠĠĠ Ġ@ Serial Name (" tag _ name ") ĊĠĠĠ Ġval ĠtagName : ĠString , ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġdraft : ĠBoolean , ĊĠĠĠ Ġval Ġbody : ĠString Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠResponse (@ Serial Name (" html _ url ") Ġval Ġhtml Url : ĠString ) Ċ