repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
34 lines • 1.29 kB
TypeScript
import { NextFunction, Request, Response } from 'express';
import { Database } from './database';
export interface AuthenticatedUser {
id: number;
login: string;
name: string;
email: string;
avatarUrl: string;
installationId?: number;
}
export interface AuthenticatedRequest extends Request {
user?: AuthenticatedUser;
}
export declare class AuthManager {
private clientId;
private clientSecret;
private database;
constructor(clientId: string, clientSecret: string, database: Database);
getAuthorizationUrl(state?: string): string;
handleCallback(code: string, state?: string): Promise<AuthenticatedUser>;
authenticateMiddleware(req: AuthenticatedRequest, res: Response, next: NextFunction): Promise<void>;
requireInstallation(req: AuthenticatedRequest, res: Response, next: NextFunction): Promise<void>;
logout(userId: number): Promise<void>;
getInstallationRepositories(installationId: number): Promise<any[]>;
}
export declare class SessionManager {
private sessions;
generateSessionToken(): string;
createSession(user: AuthenticatedUser): string;
getSession(token: string): AuthenticatedUser | undefined;
deleteSession(token: string): void;
cleanup(): void;
}
//# sourceMappingURL=auth.d.ts.map