Skip to content

Commit eaddb5b

Browse files
committed
🧹
1 parent 5068d88 commit eaddb5b

File tree

11 files changed

+40
-29
lines changed

11 files changed

+40
-29
lines changed

cli/create_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -757,7 +757,7 @@ func TestCreateWithGitAuth(t *testing.T) {
757757
{
758758
Type: &proto.Response_Plan{
759759
Plan: &proto.PlanComplete{
760-
ExternalAuthProviders: []string{"github"},
760+
ExternalAuthProviders: []*proto.ExternalAuthProviderResource{{Id: "github"}},
761761
},
762762
},
763763
},

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -925,8 +925,7 @@ func (s *MethodTestSuite) TestTemplate() {
925925
JobID: jobID,
926926
})
927927
check.Args(database.UpdateTemplateVersionExternalAuthProvidersByJobIDParams{
928-
JobID: jobID,
929-
ExternalAuthProviders: []string{},
928+
JobID: jobID,
930929
}).Asserts(t1, rbac.ActionUpdate).Returns()
931930
}))
932931
s.Run("GetTemplateInsights", s.Subtest(func(db database.Store, check *expects) {

coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,14 @@ func TestAcquireJob(t *testing.T) {
172172
// create an API key with an expiration within the bounds of the
173173
// deployment config.
174174
dv := &codersdk.DeploymentValues{MaxTokenLifetime: clibase.Duration(time.Hour)}
175-
gitAuthProvider := "github"
175+
gitAuthProvider := &sdkproto.ExternalAuthProviderResource{
176+
Id: "github",
177+
}
178+
176179
srv, db, ps, _ := setup(t, false, &overrides{
177180
deploymentValues: dv,
178181
externalAuthConfigs: []*externalauth.Config{{
179-
ID: gitAuthProvider,
182+
ID: gitAuthProvider.Id,
180183
InstrumentedOAuth2Config: &testutil.OAuth2Config{},
181184
}},
182185
})
@@ -191,7 +194,7 @@ func TestAcquireJob(t *testing.T) {
191194
OAuthAccessToken: "access-token",
192195
})
193196
dbgen.ExternalAuthLink(t, db, database.ExternalAuthLink{
194-
ProviderID: gitAuthProvider,
197+
ProviderID: gitAuthProvider.Id,
195198
UserID: user.ID,
196199
})
197200
template := dbgen.Template(t, db, database.Template{
@@ -207,9 +210,11 @@ func TestAcquireJob(t *testing.T) {
207210
},
208211
JobID: uuid.New(),
209212
})
210-
err := db.UpdateTemplateVersionExternalAuthProvidersByJobID(ctx, database.UpdateTemplateVersionExternalAuthProvidersByJobIDParams{
213+
externalAuthProviders, err := json.Marshal([]*sdkproto.ExternalAuthProviderResource{gitAuthProvider})
214+
require.NoError(t, err)
215+
err = db.UpdateTemplateVersionExternalAuthProvidersByJobID(ctx, database.UpdateTemplateVersionExternalAuthProvidersByJobIDParams{
211216
JobID: version.JobID,
212-
ExternalAuthProviders: []string{gitAuthProvider},
217+
ExternalAuthProviders: json.RawMessage(externalAuthProviders),
213218
UpdatedAt: dbtime.Now(),
214219
})
215220
require.NoError(t, err)
@@ -321,7 +326,7 @@ func TestAcquireJob(t *testing.T) {
321326
},
322327
},
323328
ExternalAuthProviders: []*sdkproto.ExternalAuthProvider{{
324-
Id: gitAuthProvider,
329+
Id: gitAuthProvider.Id,
325330
AccessToken: "access_token",
326331
}},
327332
Metadata: &sdkproto.Metadata{
@@ -949,8 +954,10 @@ func TestCompleteJob(t *testing.T) {
949954
Name: "hello",
950955
Type: "aws_instance",
951956
}},
952-
StopResources: []*sdkproto.Resource{},
953-
ExternalAuthProviders: []string{"github"},
957+
StopResources: []*sdkproto.Resource{},
958+
ExternalAuthProviders: []*sdkproto.ExternalAuthProviderResource{{
959+
Id: "github",
960+
}},
954961
},
955962
},
956963
})
@@ -1002,7 +1009,7 @@ func TestCompleteJob(t *testing.T) {
10021009
Type: "aws_instance",
10031010
}},
10041011
StopResources: []*sdkproto.Resource{},
1005-
ExternalAuthProviders: []string{"github"},
1012+
ExternalAuthProviders: []*sdkproto.ExternalAuthProviderResource{{Id: "github"}},
10061013
},
10071014
},
10081015
})

coderd/templateversions_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ func TestTemplateVersionsExternalAuth(t *testing.T) {
347347
ProvisionPlan: []*proto.Response{{
348348
Type: &proto.Response_Plan{
349349
Plan: &proto.PlanComplete{
350-
ExternalAuthProviders: []string{"github"},
350+
ExternalAuthProviders: []*proto.ExternalAuthProviderResource{{Id: "github"}},
351351
},
352352
},
353353
}},

codersdk/templateversions.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ type TemplateVersionExternalAuth struct {
4141
DisplayIcon string `json:"display_icon"`
4242
AuthenticateURL string `json:"authenticate_url"`
4343
Authenticated bool `json:"authenticated"`
44-
Optional bool `json:"optional"`
44+
Optional bool `json:"optional,omitempty"`
4545
}
4646

4747
type ValidationMonotonicOrder string

enterprise/coderd/provisionerdaemons.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ func (api *API) provisionerDaemonServe(rw http.ResponseWriter, r *http.Request)
241241

242242
if err := proto.CurrentVersion.Validate(apiVersion); err != nil {
243243
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
244-
Message: "Incompatible or unparseable version",
244+
Message: "Incompatible or unparsable version",
245245
Validations: []codersdk.ValidationError{
246246
{Field: "version", Detail: err.Error()},
247247
},

provisioner/terraform/resources.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -718,8 +718,8 @@ func ConvertState(modules []*tfjson.StateModule, rawGraph string) (*State, error
718718
}
719719
}
720720
externalAuthProviders := make([]*proto.ExternalAuthProviderResource, 0, len(externalAuthProvidersMap))
721-
for _, provider := range externalAuthProvidersMap {
722-
externalAuthProviders = append(externalAuthProviders, provider)
721+
for _, it := range externalAuthProvidersMap {
722+
externalAuthProviders = append(externalAuthProviders, it)
723723
}
724724

725725
return &State{

provisioner/terraform/resources_test.go

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"path/filepath"
88
"runtime"
99
"sort"
10+
"strings"
1011
"testing"
1112

1213
tfjson "github.com/hashicorp/terraform-json"
@@ -23,9 +24,9 @@ func TestConvertResources(t *testing.T) {
2324
// nolint:dogsled
2425
_, filename, _, _ := runtime.Caller(0)
2526
type testCase struct {
26-
resources []*proto.Resource
27-
parameters []*proto.RichParameter
28-
gitAuthProviders []string
27+
resources []*proto.Resource
28+
parameters []*proto.RichParameter
29+
externalAuthProviders []*proto.ExternalAuthProviderResource
2930
}
3031

3132
// If a user doesn't specify 'display_apps' then they default
@@ -486,7 +487,7 @@ func TestConvertResources(t *testing.T) {
486487
DisplayApps: &displayApps,
487488
}},
488489
}},
489-
gitAuthProviders: []string{"github", "gitlab"},
490+
externalAuthProviders: []*proto.ExternalAuthProviderResource{{Id: "github"}, {Id: "gitlab"}},
490491
},
491492
"display-apps": {
492493
resources: []*proto.Resource{{
@@ -547,7 +548,7 @@ func TestConvertResources(t *testing.T) {
547548
state, err := terraform.ConvertState(modules, string(tfPlanGraph))
548549
require.NoError(t, err)
549550
sortResources(state.Resources)
550-
sort.Strings(state.ExternalAuthProviders)
551+
sortExternalAuthProviders(state.ExternalAuthProviders)
551552

552553
expectedNoMetadata := make([]*proto.Resource, 0)
553554
for _, resource := range expected.resources {
@@ -585,7 +586,7 @@ func TestConvertResources(t *testing.T) {
585586
require.Equal(t, string(parametersWant), string(parametersGot))
586587
require.Equal(t, expectedNoMetadataMap, resourcesMap)
587588

588-
require.ElementsMatch(t, expected.gitAuthProviders, state.ExternalAuthProviders)
589+
require.ElementsMatch(t, expected.externalAuthProviders, state.ExternalAuthProviders)
589590
})
590591

591592
t.Run("Provision", func(t *testing.T) {
@@ -601,7 +602,7 @@ func TestConvertResources(t *testing.T) {
601602
state, err := terraform.ConvertState([]*tfjson.StateModule{tfState.Values.RootModule}, string(tfStateGraph))
602603
require.NoError(t, err)
603604
sortResources(state.Resources)
604-
sort.Strings(state.ExternalAuthProviders)
605+
sortExternalAuthProviders(state.ExternalAuthProviders)
605606
for _, resource := range state.Resources {
606607
for _, agent := range resource.Agents {
607608
agent.Id = ""
@@ -628,7 +629,7 @@ func TestConvertResources(t *testing.T) {
628629
require.NoError(t, err)
629630

630631
require.Equal(t, expectedMap, resourcesMap)
631-
require.ElementsMatch(t, expected.gitAuthProviders, state.ExternalAuthProviders)
632+
require.ElementsMatch(t, expected.externalAuthProviders, state.ExternalAuthProviders)
632633
})
633634
})
634635
}
@@ -901,3 +902,9 @@ func sortResources(resources []*proto.Resource) {
901902
})
902903
}
903904
}
905+
906+
func sortExternalAuthProviders(providers []*proto.ExternalAuthProviderResource) {
907+
sort.Slice(providers, func(i, j int) bool {
908+
return strings.Compare(providers[i].Id, providers[j].Id) == -1
909+
})
910+
}

site/src/api/typesGenerated.ts

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ export const OptionalExternalAuth: Story = {
141141
authenticate_url: "",
142142
display_icon: "/icon/github.svg",
143143
display_name: "GitHub",
144-
// @ts-expect-error
145144
optional: true,
146145
},
147146
{
@@ -151,7 +150,6 @@ export const OptionalExternalAuth: Story = {
151150
authenticate_url: "",
152151
display_icon: "/icon/gitlab.svg",
153152
display_name: "GitLab",
154-
// @ts-expect-error
155153
optional: true,
156154
},
157155
],

site/src/pages/CreateWorkspacePage/ExternalAuthWall/ExternalAuthItem.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export const ExternalAuthItem: FC<ExternalAuthItemProps> = ({
3737
<span css={styles.providerHeader}>
3838
<ExternalImage src={provider.display_icon} css={styles.providerIcon} />
3939
<strong css={styles.providerName}>{provider.display_name}</strong>
40-
{!provider.authenticated && (provider as any).optional && (
40+
{!provider.authenticated && provider.optional && (
4141
<Pill type="notice">Optional</Pill>
4242
)}
4343
</span>

0 commit comments

Comments
 (0)