1+ from __future__ import annotations
2+
13import datetime
4+ from typing import TYPE_CHECKING , Any
25
36import requests
47
58from plain .oauth .exceptions import OAuthError
69from plain .oauth .providers import OAuthProvider , OAuthToken , OAuthUser
710from plain .utils import timezone
811
12+ if TYPE_CHECKING :
13+ from plain .http import Request
14+
915
1016class GitHubOAuthProvider (OAuthProvider ):
1117 authorization_url = "https://github.com/login/oauth/authorize"
@@ -14,7 +20,7 @@ class GitHubOAuthProvider(OAuthProvider):
1420 github_user_url = "https://api.github.com/user"
1521 github_emails_url = "https://api.github.com/user/emails"
1622
17- def _get_token (self , request_data ) :
23+ def _get_token (self , request_data : dict [ str , Any ]) -> OAuthToken :
1824 response = requests .post (
1925 self .github_token_url ,
2026 headers = {
@@ -45,7 +51,7 @@ def _get_token(self, request_data):
4551
4652 return oauth_token
4753
48- def get_oauth_token (self , * , code , request ) :
54+ def get_oauth_token (self , * , code : str , request : Request ) -> OAuthToken :
4955 return self ._get_token (
5056 {
5157 "client_id" : self .get_client_id (),
@@ -54,7 +60,7 @@ def get_oauth_token(self, *, code, request):
5460 }
5561 )
5662
57- def refresh_oauth_token (self , * , oauth_token ) :
63+ def refresh_oauth_token (self , * , oauth_token : OAuthToken ) -> OAuthToken :
5864 return self ._get_token (
5965 {
6066 "client_id" : self .get_client_id (),
@@ -64,7 +70,7 @@ def refresh_oauth_token(self, *, oauth_token):
6470 }
6571 )
6672
67- def get_oauth_user (self , * , oauth_token ) :
73+ def get_oauth_user (self , * , oauth_token : OAuthToken ) -> OAuthUser :
6874 response = requests .get (
6975 self .github_user_url ,
7076 headers = {
0 commit comments