import { normalizeEndpoint } from '../../mcp/utils/normalize-endpoint';
import { OAuthProviderConfig } from './oauth-provider.interface';
import { Strategy } from 'passport-github';
export const GitHubOAuthProvider: OAuthProviderConfig = {
name: 'github',
strategy: Strategy,
strategyOptions: ({ serverUrl, clientId, clientSecret, callbackPath }) => ({
clientID: clientId,
clientSecret: clientSecret,
callbackURL: normalizeEndpoint(`${serverUrl}/${callbackPath}`),
}),
scope: ['user:email'],
profileMapper: (profile) => ({
id: profile.id,
username: profile.username || profile.login,
email: profile.emails?.[0]?.value,
displayName: profile.displayName || profile.name,
avatarUrl: profile.photos?.[0]?.value || profile.avatar_url,
raw: profile,
}),
};