1use anyhow::{Context, Result};
2use oauth2::{basic::BasicClient, AuthUrl, ClientId, ClientSecret, TokenUrl};
3
4pub fn github_oauth2_client(
5 github_client_id: String,
6 github_client_secret: String,
7) -> Result<BasicClient> {
8 let client_id = ClientId::new(github_client_id);
9 let client_secret = ClientSecret::new(github_client_secret);
10 let oauth2_client = BasicClient::new(
11 client_id,
12 Some(client_secret),
13 AuthUrl::new("https://github.com/login/oauth/authorize".to_string())
14 .context("invalid github authorize url")?,
15 Some(TokenUrl::new("https://github.com/login/oauth/access_token".to_string()).unwrap()),
16 );
17 Ok(oauth2_client)
18}