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

Commitd7e6cd2

Browse files
authored
Merge branch 'main' into cj/workspace-autostop-ttl
2 parents0d2d394 +c47b6f0 commitd7e6cd2

File tree

42 files changed

+524
-189
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+524
-189
lines changed

‎.goreleaser.yaml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,9 @@ docker_manifests:
153153

154154
release:
155155
ids:[coder-linux, coder-darwin, coder-windows, packages]
156+
footer:|
157+
## Container Image
158+
- `docker pull ghcr.io/coder/coder:{{ .Tag }}`
156159
157160
signs:
158161
-ids:[coder-darwin]

‎cli/cliui/parameter.go‎

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/coder/coder/codersdk"
1111
)
1212

13-
funcParameterSchema(cmd*cobra.Command,parameterSchema codersdk.TemplateVersionParameterSchema) (string,error) {
13+
funcParameterSchema(cmd*cobra.Command,parameterSchema codersdk.ParameterSchema) (string,error) {
1414
_,_=fmt.Fprintln(cmd.OutOrStdout(),Styles.Bold.Render("var."+parameterSchema.Name))
1515
ifparameterSchema.Description!="" {
1616
_,_=fmt.Fprintln(cmd.OutOrStdout()," "+strings.TrimSpace(strings.Join(strings.Split(parameterSchema.Description,"\n"),"\n "))+"\n")
@@ -30,16 +30,32 @@ func ParameterSchema(cmd *cobra.Command, parameterSchema codersdk.TemplateVersio
3030
_,_=fmt.Fprint(cmd.OutOrStdout(),"\033[1A")
3131
value,err=Select(cmd,SelectOptions{
3232
Options:options,
33+
Default:parameterSchema.DefaultSourceValue,
3334
HideSearch:true,
3435
})
3536
iferr==nil {
3637
_,_=fmt.Fprintln(cmd.OutOrStdout())
3738
_,_=fmt.Fprintln(cmd.OutOrStdout()," "+Styles.Prompt.String()+Styles.Field.Render(value))
3839
}
3940
}else {
41+
text:="Enter a value"
42+
ifparameterSchema.DefaultSourceValue!="" {
43+
text+=fmt.Sprintf(" (default: %q)",parameterSchema.DefaultSourceValue)
44+
}
45+
text+=":"
46+
4047
value,err=Prompt(cmd,PromptOptions{
41-
Text:Styles.Bold.Render("Enter a value:"),
48+
Text:Styles.Bold.Render(text),
4249
})
4350
}
44-
returnvalue,err
51+
iferr!=nil {
52+
return"",err
53+
}
54+
55+
// If they didn't specify anything, use the default value if set.
56+
iflen(options)==0&&value=="" {
57+
value=parameterSchema.DefaultSourceValue
58+
}
59+
60+
returnvalue,nil
4561
}

‎cli/cliui/select.go‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ func init() {
3535
}
3636

3737
typeSelectOptionsstruct {
38-
Options []string
38+
Options []string
39+
// Default will be highlighted first if it's a valid option.
40+
Defaultstring
3941
Sizeint
4042
HideSearchbool
4143
}
@@ -50,9 +52,16 @@ func Select(cmd *cobra.Command, opts SelectOptions) (string, error) {
5052
ifflag.Lookup("test.v")!=nil {
5153
returnopts.Options[0],nil
5254
}
55+
56+
vardefaultOptioninterface{}
57+
ifopts.Default!="" {
58+
defaultOption=opts.Default
59+
}
60+
5361
varvaluestring
5462
err:=survey.AskOne(&survey.Select{
5563
Options:opts.Options,
64+
Default:defaultOption,
5665
PageSize:opts.Size,
5766
},&value,survey.WithIcons(func(is*survey.IconSet) {
5867
is.Help.Text="Type to search"

‎cli/create.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func create() *cobra.Command {
135135
Name:parameterSchema.Name,
136136
SourceValue:value,
137137
SourceScheme:database.ParameterSourceSchemeData,
138-
DestinationScheme:parameterSchema.DefaultDestinationScheme,
138+
DestinationScheme:database.ParameterDestinationScheme(parameterSchema.DefaultDestinationScheme),
139139
})
140140
}
141141
_,_=fmt.Fprintln(cmd.OutOrStdout())

‎cli/create_test.go‎

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cli_test
22

33
import (
4+
"fmt"
45
"testing"
56

67
"github.com/stretchr/testify/require"
@@ -44,6 +45,7 @@ func TestCreate(t *testing.T) {
4445
}
4546
<-doneChan
4647
})
48+
4749
t.Run("CreateFromList",func(t*testing.T) {
4850
t.Parallel()
4951
client:=coderdtest.New(t,nil)
@@ -74,6 +76,7 @@ func TestCreate(t *testing.T) {
7476
}
7577
<-doneChan
7678
})
79+
7780
t.Run("FromNothing",func(t*testing.T) {
7881
t.Parallel()
7982
client:=coderdtest.New(t,nil)
@@ -105,33 +108,52 @@ func TestCreate(t *testing.T) {
105108
}
106109
<-doneChan
107110
})
111+
108112
t.Run("WithParameter",func(t*testing.T) {
109113
t.Parallel()
110114
client:=coderdtest.New(t,nil)
111115
user:=coderdtest.CreateFirstUser(t,client)
112116
coderdtest.NewProvisionerDaemon(t,client)
117+
118+
defaultValue:="something"
113119
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
114120
Parse: []*proto.Parse_Response{{
115121
Type:&proto.Parse_Response_Complete{
116122
Complete:&proto.Parse_Complete{
117-
ParameterSchemas: []*proto.ParameterSchema{{
118-
AllowOverrideSource:true,
119-
Name:"region",
120-
Description:"description",
121-
DefaultSource:&proto.ParameterSource{
122-
Scheme:proto.ParameterSource_DATA,
123-
Value:"something",
123+
ParameterSchemas: []*proto.ParameterSchema{
124+
{
125+
AllowOverrideSource:true,
126+
Name:"region",
127+
Description:"description 1",
128+
DefaultSource:&proto.ParameterSource{
129+
Scheme:proto.ParameterSource_DATA,
130+
Value:defaultValue,
131+
},
132+
DefaultDestination:&proto.ParameterDestination{
133+
Scheme:proto.ParameterDestination_PROVISIONER_VARIABLE,
134+
},
124135
},
125-
DefaultDestination:&proto.ParameterDestination{
126-
Scheme:proto.ParameterDestination_PROVISIONER_VARIABLE,
136+
{
137+
AllowOverrideSource:true,
138+
Name:"username",
139+
Description:"description 2",
140+
DefaultSource:&proto.ParameterSource{
141+
Scheme:proto.ParameterSource_DATA,
142+
// No default value
143+
Value:"",
144+
},
145+
DefaultDestination:&proto.ParameterDestination{
146+
Scheme:proto.ParameterDestination_PROVISIONER_VARIABLE,
147+
},
127148
},
128-
}},
149+
},
129150
},
130151
},
131152
}},
132153
Provision:echo.ProvisionComplete,
133154
ProvisionDryRun:echo.ProvisionComplete,
134155
})
156+
135157
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
136158
_=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
137159
cmd,root:=clitest.New(t,"create","")
@@ -145,9 +167,11 @@ func TestCreate(t *testing.T) {
145167
err:=cmd.Execute()
146168
require.NoError(t,err)
147169
}()
170+
148171
matches:= []string{
149172
"Specify a name","my-workspace",
150-
"Enter a value","bananas",
173+
fmt.Sprintf("Enter a value (default: %q):",defaultValue),"bingo",
174+
"Enter a value:","boingo",
151175
"Confirm create?","yes",
152176
}
153177
fori:=0;i<len(matches);i+=2 {

‎cli/login.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ func login() *cobra.Command {
164164
cliui.Styles.Paragraph.Render(fmt.Sprintf("Welcome to Coder, %s! You're authenticated.",cliui.Styles.Keyword.Render(username)))+"\n")
165165

166166
_,_=fmt.Fprintf(cmd.OutOrStdout(),
167-
cliui.Styles.Paragraph.Render("Get started by creating a template: "+cliui.Styles.Code.Render("coder templatescreate"))+"\n")
167+
cliui.Styles.Paragraph.Render("Get started by creating a template: "+cliui.Styles.Code.Render("coder templatesinit"))+"\n")
168168
returnnil
169169
}
170170

‎cli/templatecreate.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ func createValidTemplateVersion(cmd *cobra.Command, client *codersdk.Client, org
175175
sort.Slice(parameterSchemas,func(i,jint)bool {
176176
returnparameterSchemas[i].Name<parameterSchemas[j].Name
177177
})
178-
missingSchemas:=make([]codersdk.TemplateVersionParameterSchema,0)
178+
missingSchemas:=make([]codersdk.ParameterSchema,0)
179179
for_,parameterSchema:=rangeparameterSchemas {
180180
_,ok:=valuesBySchemaID[parameterSchema.ID.String()]
181181
ifok {
@@ -193,7 +193,7 @@ func createValidTemplateVersion(cmd *cobra.Command, client *codersdk.Client, org
193193
Name:parameterSchema.Name,
194194
SourceValue:value,
195195
SourceScheme:database.ParameterSourceSchemeData,
196-
DestinationScheme:parameterSchema.DefaultDestinationScheme,
196+
DestinationScheme:database.ParameterDestinationScheme(parameterSchema.DefaultDestinationScheme),
197197
})
198198
_,_=fmt.Fprintln(cmd.OutOrStdout())
199199
}

‎coderd/autobuild/executor/lifecycle_executor_test.go‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"os"
7+
"strings"
78
"testing"
89
"time"
910

@@ -505,6 +506,9 @@ func mustTransitionWorkspace(t *testing.T, client *codersdk.Client, workspaceID
505506
funcmustWorkspace(t*testing.T,client*codersdk.Client,workspaceID uuid.UUID) codersdk.Workspace {
506507
ctx:=context.Background()
507508
ws,err:=client.Workspace(ctx,workspaceID)
509+
iferr!=nil&&strings.Contains(err.Error(),"status code 410") {
510+
ws,err=client.DeletedWorkspace(ctx,workspaceID)
511+
}
508512
require.NoError(t,err,"no workspace found with id %s",workspaceID)
509513
returnws
510514
}

‎coderd/parameters.go‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ import (
88

99
"github.com/go-chi/chi/v5"
1010
"github.com/google/uuid"
11+
"golang.org/x/xerrors"
1112

1213
"github.com/coder/coder/coderd/database"
1314
"github.com/coder/coder/coderd/httpapi"
15+
"github.com/coder/coder/coderd/parameter"
1416
"github.com/coder/coder/codersdk"
1517
)
1618

@@ -122,6 +124,37 @@ func (api *api) deleteParameter(rw http.ResponseWriter, r *http.Request) {
122124
})
123125
}
124126

127+
funcconvertParameterSchema(parameterSchema database.ParameterSchema) (codersdk.ParameterSchema,error) {
128+
contains:= []string{}
129+
ifparameterSchema.ValidationCondition!="" {
130+
varerrerror
131+
contains,_,err=parameter.Contains(parameterSchema.ValidationCondition)
132+
iferr!=nil {
133+
return codersdk.ParameterSchema{},xerrors.Errorf("parse validation condition for %q: %w",parameterSchema.Name,err)
134+
}
135+
}
136+
137+
return codersdk.ParameterSchema{
138+
ID:parameterSchema.ID,
139+
CreatedAt:parameterSchema.CreatedAt,
140+
JobID:parameterSchema.JobID,
141+
Name:parameterSchema.Name,
142+
Description:parameterSchema.Description,
143+
DefaultSourceScheme:string(parameterSchema.DefaultSourceScheme),
144+
DefaultSourceValue:parameterSchema.DefaultSourceValue,
145+
AllowOverrideSource:parameterSchema.AllowOverrideSource,
146+
DefaultDestinationScheme:string(parameterSchema.DefaultDestinationScheme),
147+
AllowOverrideDestination:parameterSchema.AllowOverrideDestination,
148+
DefaultRefresh:parameterSchema.DefaultRefresh,
149+
RedisplayValue:parameterSchema.RedisplayValue,
150+
ValidationError:parameterSchema.ValidationError,
151+
ValidationCondition:parameterSchema.ValidationCondition,
152+
ValidationTypeSystem:string(parameterSchema.ValidationTypeSystem),
153+
ValidationValueType:parameterSchema.ValidationValueType,
154+
ValidationContains:contains,
155+
},nil
156+
}
157+
125158
funcconvertParameterValue(parameterValue database.ParameterValue) codersdk.Parameter {
126159
return codersdk.Parameter{
127160
ID:parameterValue.ID,

‎coderd/templateversions.go‎

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,18 @@ func (api *api) templateVersionSchema(rw http.ResponseWriter, r *http.Request) {
9595
})
9696
return
9797
}
98-
ifschemas==nil {
99-
schemas= []database.ParameterSchema{}
98+
apiSchemas:=make([]codersdk.ParameterSchema,0)
99+
for_,schema:=rangeschemas {
100+
apiSchema,err:=convertParameterSchema(schema)
101+
iferr!=nil {
102+
httpapi.Write(rw,http.StatusInternalServerError, httpapi.Response{
103+
Message:fmt.Sprintf("convert: %s",err),
104+
})
105+
return
106+
}
107+
apiSchemas=append(apiSchemas,apiSchema)
100108
}
101-
102-
httpapi.Write(rw,http.StatusOK,schemas)
109+
httpapi.Write(rw,http.StatusOK,apiSchemas)
103110
}
104111

105112
func (api*api)templateVersionParameters(rw http.ResponseWriter,r*http.Request) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp