This will cause bugs if for some reason using different access tokens for users in the same script
# TODO: add persistent filesystem based cache mapping access_token to user_info. Currently takes ~1 second
def get_user_info(access_token: str) -> Dict[str, Any]:
"""
Returns the user info for the given access token.
Caches the user info in the global user_info variable.
Args:
access_token: The access token to get the user info for.
Returns:
```python
{
"login": str,
"email": str,
"avatar_url": str,
"name": str,
}
```
"""
global user_info
if user_info:
return user_info
if USE_GITHUB:
response = requests.get("https://api.github.com/user", headers=get_headers(access_token)).json()
user_info = {
"login": response["login"],
"email": response["email"],
"avatar_url": response["avatar_url"],
"name": response["name"],
}
else:
response = requests.get(f"https://{MODAIC_GIT_URL}/api/v1/user", headers=get_headers(access_token)).json()
user_info = {
"login": response["login"],
"email": response["email"],
"avatar_url": response["avatar_url"],
"name": response["full_name"],
}
return user_info
This will cause bugs if for some reason using different access tokens for users in the same script