( ctx context.Context, logger slog.Logger, db database.Store, vals *codersdk.DeploymentValues, mergedExplicitProviders []codersdk.ExternalAuthConfig, )
| 2091 | } |
| 2092 | |
| 2093 | func maybeAppendDefaultGithubExternalAuthProvider( |
| 2094 | ctx context.Context, |
| 2095 | logger slog.Logger, |
| 2096 | db database.Store, |
| 2097 | vals *codersdk.DeploymentValues, |
| 2098 | mergedExplicitProviders []codersdk.ExternalAuthConfig, |
| 2099 | ) ([]codersdk.ExternalAuthConfig, error) { |
| 2100 | if !vals.ExternalAuthGithubDefaultProviderEnable.Value() { |
| 2101 | logger.Info(ctx, "default github external auth provider suppressed", |
| 2102 | slog.F("reason", "disabled by configuration"), |
| 2103 | slog.F("flag", "external-auth-github-default-provider-enable"), |
| 2104 | ) |
| 2105 | return mergedExplicitProviders, nil |
| 2106 | } |
| 2107 | |
| 2108 | if len(mergedExplicitProviders) > 0 { |
| 2109 | logger.Info(ctx, "default github external auth provider suppressed", |
| 2110 | slog.F("reason", "explicit external auth providers configured"), |
| 2111 | slog.F("provider_count", len(mergedExplicitProviders)), |
| 2112 | ) |
| 2113 | return mergedExplicitProviders, nil |
| 2114 | } |
| 2115 | |
| 2116 | defaultEligible, err := isDeploymentEligibleForGithubDefaultProvider(ctx, db) |
| 2117 | if err != nil { |
| 2118 | return nil, err |
| 2119 | } |
| 2120 | if !defaultEligible { |
| 2121 | logger.Info(ctx, "default github external auth provider suppressed", |
| 2122 | slog.F("reason", "deployment is not eligible"), |
| 2123 | ) |
| 2124 | return mergedExplicitProviders, nil |
| 2125 | } |
| 2126 | |
| 2127 | logger.Info(ctx, "injecting default github external auth provider", |
| 2128 | slog.F("type", codersdk.EnhancedExternalAuthProviderGitHub.String()), |
| 2129 | slog.F("client_id", GithubOAuth2DefaultProviderClientID), |
| 2130 | slog.F("device_flow", GithubOAuth2DefaultProviderDeviceFlow), |
| 2131 | ) |
| 2132 | return append(mergedExplicitProviders, codersdk.ExternalAuthConfig{ |
| 2133 | Type: codersdk.EnhancedExternalAuthProviderGitHub.String(), |
| 2134 | ClientID: GithubOAuth2DefaultProviderClientID, |
| 2135 | DeviceFlow: GithubOAuth2DefaultProviderDeviceFlow, |
| 2136 | }), nil |
| 2137 | } |
| 2138 | |
| 2139 | func getGithubOAuth2ConfigParams(ctx context.Context, db database.Store, vals *codersdk.DeploymentValues) (*githubOAuth2ConfigParams, error) { |
| 2140 | params := githubOAuth2ConfigParams{ |
no test coverage detected