mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-24 16:11:08 +02:00
* updates api client vars to snake_case for custom messages * updates api client vars to snake_case for tools * updates api client vars to snake_case for sync * updates api client vars to snake_case for secrets engine * updates api client vars to snake_case for auth * updates api client vars to snake_case for usage * updates api client dep to point to gh repo * fixes custom-messages service unit tests * fixes configure-ssh test * fixes configure-ssh test...again
36 lines
884 B
TypeScript
36 lines
884 B
TypeScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import AuthBase from './base';
|
|
|
|
import type { GithubLoginApiResponse } from 'vault/vault/auth/methods';
|
|
|
|
/**
|
|
* @module Auth::Form::Github
|
|
* see Auth::Base
|
|
*/
|
|
|
|
export default class AuthFormGithub extends AuthBase {
|
|
loginFields = [{ name: 'token', label: 'Github token' }];
|
|
|
|
async loginRequest(formData: { path: string; token: string }) {
|
|
const { path, token } = formData;
|
|
|
|
const { auth } = (await this.api.auth.githubLogin(path, {
|
|
token,
|
|
})) as GithubLoginApiResponse;
|
|
|
|
const { org, username } = auth?.metadata || {};
|
|
const displayName = org && username ? `${org}/${username}` : username || org || '';
|
|
|
|
return this.normalizeAuthResponse(auth, {
|
|
authMountPath: path,
|
|
displayName,
|
|
token: auth.client_token,
|
|
ttl: auth.lease_duration,
|
|
});
|
|
}
|
|
}
|