Skip to content

Commit 3cc40c1

Browse files
committed
Merge branch 'issues/483' of github.com:taylorwilsdon/google_workspace_mcp into issues/483
2 parents 90a2a9c + 950206c commit 3cc40c1

4 files changed

Lines changed: 24 additions & 7 deletions

File tree

auth/google_auth.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,11 @@ def get_credentials(
587587
)
588588

589589
# Refresh expired credentials before checking scopes
590-
if not credentials.valid and credentials.expired and credentials.refresh_token:
590+
if (
591+
not credentials.valid
592+
and credentials.expired
593+
and credentials.refresh_token
594+
):
591595
try:
592596
credentials.refresh(Request())
593597
logger.info(

auth/scopes.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,12 @@
8484
# See https://developers.google.com/gmail/api/auth/scopes,
8585
# https://developers.google.com/drive/api/guides/api-specific-auth, etc.
8686
SCOPE_HIERARCHY = {
87-
GMAIL_MODIFY_SCOPE: {GMAIL_READONLY_SCOPE, GMAIL_SEND_SCOPE, GMAIL_COMPOSE_SCOPE, GMAIL_LABELS_SCOPE},
87+
GMAIL_MODIFY_SCOPE: {
88+
GMAIL_READONLY_SCOPE,
89+
GMAIL_SEND_SCOPE,
90+
GMAIL_COMPOSE_SCOPE,
91+
GMAIL_LABELS_SCOPE,
92+
},
8893
DRIVE_SCOPE: {DRIVE_READONLY_SCOPE, DRIVE_FILE_SCOPE},
8994
CALENDAR_SCOPE: {CALENDAR_READONLY_SCOPE, CALENDAR_EVENTS_SCOPE},
9095
DOCS_WRITE_SCOPE: {DOCS_READONLY_SCOPE},

gchat/chat_tools.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
def _cache_sender(user_id: str, name: str) -> None:
2626
"""Store a resolved sender name, evicting oldest entries if cache is full."""
2727
if len(_sender_name_cache) >= _SENDER_CACHE_MAX_SIZE:
28-
to_remove = list(_sender_name_cache.keys())[:_SENDER_CACHE_MAX_SIZE // 2]
28+
to_remove = list(_sender_name_cache.keys())[: _SENDER_CACHE_MAX_SIZE // 2]
2929
for k in to_remove:
3030
del _sender_name_cache[k]
3131
_sender_name_cache[user_id] = name
@@ -204,7 +204,9 @@ async def get_messages(
204204
for msg in messages:
205205
sender_obj = msg.get("sender", {})
206206
sender_key = sender_obj.get("name", "")
207-
sender = sender_map.get(sender_key) or await _resolve_sender(people_service, sender_obj)
207+
sender = sender_map.get(sender_key) or await _resolve_sender(
208+
people_service, sender_obj
209+
)
208210
create_time = msg.get("createTime", "Unknown Time")
209211
text_content = msg.get("text", "No text content")
210212
msg_name = msg.get("name", "")
@@ -347,7 +349,9 @@ async def search_messages(
347349
msg["_space_name"] = space.get("displayName", "Unknown")
348350
messages.extend(space_msgs)
349351
except HttpError as e:
350-
logger.debug("Skipping space %s during search: %s", space.get("name"), e)
352+
logger.debug(
353+
"Skipping space %s during search: %s", space.get("name"), e
354+
)
351355
continue
352356
context = "all accessible spaces"
353357

@@ -370,7 +374,9 @@ async def search_messages(
370374
for msg in messages:
371375
sender_obj = msg.get("sender", {})
372376
sender_key = sender_obj.get("name", "")
373-
sender = sender_map.get(sender_key) or await _resolve_sender(people_service, sender_obj)
377+
sender = sender_map.get(sender_key) or await _resolve_sender(
378+
people_service, sender_obj
379+
)
374380
create_time = msg.get("createTime", "Unknown Time")
375381
text_content = msg.get("text", "No text content")
376382
space_name = msg.get("_space_name", "Unknown Space")

tests/test_scopes.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,9 @@ def test_gmail_modify_covers_labels(self):
151151

152152
def test_gmail_modify_does_not_cover_settings(self):
153153
"""gmail.modify does NOT cover gmail.settings.basic."""
154-
assert not has_required_scopes([GMAIL_MODIFY_SCOPE], [GMAIL_SETTINGS_BASIC_SCOPE])
154+
assert not has_required_scopes(
155+
[GMAIL_MODIFY_SCOPE], [GMAIL_SETTINGS_BASIC_SCOPE]
156+
)
155157

156158
def test_gmail_modify_covers_multiple_children(self):
157159
"""gmail.modify should satisfy multiple child scopes at once."""

0 commit comments

Comments
 (0)