Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3c8828d

Browse files
authored
feat: set 'jetbrains_connection' as build reason on workspace start (#561)
* Set 'jetbrains_connection' as build reason on workspace start* Fix tests
1 parent26ac983 commit3c8828d

File tree

5 files changed

+36
-10
lines changed

5 files changed

+36
-10
lines changed

‎src/main/kotlin/com/coder/gateway/cli/CoderCLIManager.kt‎

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ data class Features(
116116
valdisableAutostart:Boolean =false,
117117
valreportWorkspaceUsage:Boolean =false,
118118
valwildcardSSH:Boolean =false,
119+
valbuildReason:Boolean =false,
119120
)
120121

121122
/**
@@ -479,13 +480,21 @@ class CoderCLIManager(
479480
*
480481
* Throws if the command execution fails.
481482
*/
482-
funstartWorkspace(workspaceOwner:String,workspaceName:String):String= exec(
483-
"--global-config",
484-
coderConfigPath.toString(),
485-
"start",
486-
"--yes",
487-
workspaceOwner+"/"+ workspaceName,
488-
)
483+
funstartWorkspace(workspaceOwner:String,workspaceName:String,feats:Features = features):String {
484+
val args=mutableListOf(
485+
"--global-config",
486+
coderConfigPath.toString(),
487+
"start",
488+
"--yes",
489+
workspaceOwner+"/"+ workspaceName
490+
)
491+
492+
if (feats.buildReason) {
493+
args.addAll(listOf("--reason","jetbrains_connection"))
494+
}
495+
496+
return exec(*args.toTypedArray())
497+
}
489498

490499
privatefunexec(varargargs:String):String {
491500
val stdout=
@@ -511,6 +520,7 @@ class CoderCLIManager(
511520
disableAutostart= version>=SemVer(2,5,0),
512521
reportWorkspaceUsage= version>=SemVer(2,13,0),
513522
wildcardSSH= version>=SemVer(2,19,0),
523+
buildReason= version>=SemVer(2,25,0),
514524
)
515525
}
516526
}

‎src/main/kotlin/com/coder/gateway/sdk/CoderRestClient.kt‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.coder.gateway.sdk.v2.models.User
1515
importcom.coder.gateway.sdk.v2.models.Workspace
1616
importcom.coder.gateway.sdk.v2.models.WorkspaceAgent
1717
importcom.coder.gateway.sdk.v2.models.WorkspaceBuild
18+
importcom.coder.gateway.sdk.v2.models.WorkspaceBuildReason
1819
importcom.coder.gateway.sdk.v2.models.WorkspaceResource
1920
importcom.coder.gateway.sdk.v2.models.WorkspaceStatus
2021
importcom.coder.gateway.sdk.v2.models.WorkspaceTransition
@@ -244,7 +245,7 @@ open class CoderRestClient(
244245
* @throws [APIResponseException].
245246
*/
246247
funstopWorkspace(workspace:Workspace):WorkspaceBuild {
247-
val buildRequest=CreateWorkspaceBuildRequest(null,WorkspaceTransition.STOP)
248+
val buildRequest=CreateWorkspaceBuildRequest(null,WorkspaceTransition.STOP,null)
248249
val buildResponse= retroRestClient.createWorkspaceBuild(workspace.id, buildRequest).execute()
249250
if (buildResponse.code()!=HttpURLConnection.HTTP_CREATED) {
250251
throwAPIResponseException("stop workspace${workspace.name}", url, buildResponse)
@@ -265,7 +266,11 @@ open class CoderRestClient(
265266
funupdateWorkspace(workspace:Workspace):WorkspaceBuild {
266267
val template= template(workspace.templateID)
267268
val buildRequest=
268-
CreateWorkspaceBuildRequest(template.activeVersionID,WorkspaceTransition.START)
269+
CreateWorkspaceBuildRequest(
270+
template.activeVersionID,
271+
WorkspaceTransition.START,
272+
WorkspaceBuildReason.JETBRAINS_CONNECTION
273+
)
269274
val buildResponse= retroRestClient.createWorkspaceBuild(workspace.id, buildRequest).execute()
270275
if (buildResponse.code()!=HttpURLConnection.HTTP_CREATED) {
271276
throwAPIResponseException("update workspace${workspace.name}", url, buildResponse)

‎src/main/kotlin/com/coder/gateway/sdk/v2/models/CreateWorkspaceBuildRequest.kt‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ data class CreateWorkspaceBuildRequest(
1010
@Json(name="template_version_id")valtemplateVersionID:UUID?,
1111
// Use to start and stop the workspace.
1212
@Json(name="transition")valtransition:WorkspaceTransition,
13+
// Use to set build reason for a workspace.
14+
@Json(name="reason")valreason:WorkspaceBuildReason?,
1315
) {
1416
overridefunequals(other:Any?):Boolean {
1517
if (this=== other)returntrue
@@ -19,13 +21,15 @@ data class CreateWorkspaceBuildRequest(
1921

2022
if (templateVersionID!= other.templateVersionID)returnfalse
2123
if (transition!= other.transition)returnfalse
24+
if (reason!= other.reason)returnfalse
2225

2326
returntrue
2427
}
2528

2629
overridefunhashCode():Int {
2730
var result= templateVersionID?.hashCode()?:0
2831
result=31* result+ transition.hashCode()
32+
result=31* result+ (reason?.hashCode()?:0)
2933
return result
3034
}
3135
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
packagecom.coder.gateway.sdk.v2.models
2+
3+
importcom.squareup.moshi.Json
4+
5+
enumclassWorkspaceBuildReason {
6+
@Json(name="jetbrains_connection")JETBRAINS_CONNECTION,
7+
}

‎src/test/kotlin/com/coder/gateway/cli/CoderCLIManagerTest.kt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -825,7 +825,7 @@ internal class CoderCLIManagerTest {
825825
listOf(
826826
Pair("2.5.0",Features(true)),
827827
Pair("2.13.0",Features(true,true)),
828-
Pair("4.9.0",Features(true,true,true)),
828+
Pair("4.9.0",Features(true,true,true,true)),
829829
Pair("2.4.9",Features(false)),
830830
Pair("1.0.1",Features(false)),
831831
)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp