|
11 | 11 | from motor.motor_asyncio import AsyncIOMotorClient |
12 | 12 | from pymongo.errors import ConfigurationError |
13 | 13 |
|
14 | | -from core.models import getLogger |
| 14 | +from core.models import InvalidConfigError, getLogger |
15 | 15 |
|
16 | 16 | logger = getLogger(__name__) |
17 | 17 |
|
@@ -201,11 +201,15 @@ async def login(cls, bot) -> "GitHub": |
201 | 201 | """ |
202 | 202 | self = cls(bot, bot.config.get("github_token")) |
203 | 203 | resp: dict = await self.request("https://api.github.com/user") |
204 | | - self.username = resp["login"] |
205 | | - self.avatar_url = resp["avatar_url"] |
206 | | - self.url = resp["html_url"] |
207 | | - logger.info(f"GitHub logged in to: {self.username}") |
208 | | - return self |
| 204 | + if resp.get("login"): |
| 205 | + self.username = resp["login"] |
| 206 | + self.avatar_url = resp["avatar_url"] |
| 207 | + self.url = resp["html_url"] |
| 208 | + logger.info(f"GitHub logged in to: {self.username}") |
| 209 | + return self |
| 210 | + else: |
| 211 | + raise InvalidConfigError("Invalid github token") |
| 212 | + |
209 | 213 |
|
210 | 214 |
|
211 | 215 | class ApiClient: |
@@ -654,10 +658,14 @@ async def update_repository(self) -> dict: |
654 | 658 | } |
655 | 659 |
|
656 | 660 | async def get_user_info(self) -> dict: |
657 | | - user = await GitHub.login(self.bot) |
658 | | - return { |
659 | | - "user": {"username": user.username, "avatar_url": user.avatar_url, "url": user.url,} |
660 | | - } |
| 661 | + try: |
| 662 | + user = await GitHub.login(self.bot) |
| 663 | + except InvalidConfigError: |
| 664 | + return None |
| 665 | + else: |
| 666 | + return { |
| 667 | + "user": {"username": user.username, "avatar_url": user.avatar_url, "url": user.url,} |
| 668 | + } |
661 | 669 |
|
662 | 670 |
|
663 | 671 | class PluginDatabaseClient: |
|
0 commit comments