MCPcopy Index your code
hub / github.com/coder/coder / maybeAppendDefaultGithubExternalAuthProvider

Function maybeAppendDefaultGithubExternalAuthProvider

cli/server.go:2093–2137  ·  view source on GitHub ↗
(
	ctx context.Context,
	logger slog.Logger,
	db database.Store,
	vals *codersdk.DeploymentValues,
	mergedExplicitProviders []codersdk.ExternalAuthConfig,
)

Source from the content-addressed store, hash-verified

2091}
2092
2093func 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
2139func getGithubOAuth2ConfigParams(ctx context.Context, db database.Store, vals *codersdk.DeploymentValues) (*githubOAuth2ConfigParams, error) {
2140 params := githubOAuth2ConfigParams{

Callers 1

ServerMethod · 0.85

Calls 4

ValueMethod · 0.45
InfoMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected