export async function registerAuthenticationProvider()

in packages/vscode-extension-web-ide/src/authentication/registerAuthenticationProvider.ts [9:37]


export async function registerAuthenticationProvider(
  context: vscode.ExtensionContext,
  apiAuthProvider: ApiAuthProvider,
  config: WebIdeExtensionConfig,
) {
  const token = await apiAuthProvider.getToken();

  if (!token) {
    log.debug('OAuth token not found.');
  }

  log.debug('Registering authentication provider...');

  const vscodeAuthProvider = new GitLabAuthenticationProvider(config, token);

  return vscode.Disposable.from(
    vscodeAuthProvider,
    subscribeProviderToChangeMessage(vscodeAuthProvider, apiAuthProvider, context),
    vscode.authentication.registerAuthenticationProvider(
      AUTHENTICATION_PROVIDER_ID,
      // TODO: Use name from GitLab instance instead of 'GitLab Web IDE'
      'GitLab Web IDE',
      vscodeAuthProvider,
      {
        supportsMultipleAccounts: false,
      },
    ),
  );
}