@@ -16,7 +16,10 @@ import com.coder.gateway.sdk.v2.models.WorkspaceBuild
16
16
import com.coder.gateway.sdk.v2.models.WorkspaceTransition
17
17
import com.google.gson.Gson
18
18
import com.google.gson.GsonBuilder
19
+ import com.intellij.ide.plugins.PluginManagerCore
19
20
import com.intellij.openapi.components.Service
21
+ import com.intellij.openapi.extensions.PluginId
22
+ import com.intellij.openapi.util.SystemInfo
20
23
import okhttp3.OkHttpClient
21
24
import okhttp3.logging.HttpLoggingInterceptor
22
25
import retrofit2.Retrofit
@@ -43,7 +46,14 @@ class CoderRestClientService {
43
46
*/
44
47
fun initClientSession (url : URL , token : String ): User {
45
48
val gson: Gson = GsonBuilder ().registerTypeAdapter(Instant ::class .java, InstantConverter ()).setPrettyPrinting().create()
46
- httpClient = OkHttpClient .Builder ().addInterceptor { it.proceed(it.request().newBuilder().addHeader(" Coder-Session-Token" , token).build()) }.addInterceptor(HttpLoggingInterceptor ().apply { setLevel(HttpLoggingInterceptor .Level .BASIC ) }).build()
49
+ val pluginVersion = PluginManagerCore .getPlugin(PluginId .getId(" com.coder.gateway" ))!! // this is the id from the plugin.xml
50
+
51
+ httpClient = OkHttpClient .Builder ()
52
+ .addInterceptor { it.proceed(it.request().newBuilder().addHeader(" Coder-Session-Token" , token).build()) }
53
+ .addInterceptor { it.proceed(it.request().newBuilder().addHeader(" User-Agent" , " Coder Gateway/${pluginVersion.version} (${SystemInfo .getOsNameAndVersion()} ; ${SystemInfo .OS_ARCH } )" ).build()) }
54
+ // this should always be last if we want to see previous interceptors logged
55
+ .addInterceptor(HttpLoggingInterceptor ().apply { setLevel(HttpLoggingInterceptor .Level .BASIC ) })
56
+ .build()
47
57
48
58
retroRestClient = Retrofit .Builder ().baseUrl(url.toString()).client(httpClient).addConverterFactory(GsonConverterFactory .create(gson)).build().create(CoderV2RestFacade ::class .java)
49
59
0 commit comments