Skip to content

Commit 8a104c6

Browse files
committed
Update GitHub sync to skip messages when no changes are made
1 parent 0d6ec71 commit 8a104c6

1 file changed

Lines changed: 27 additions & 31 deletions

File tree

arthur/exts/github/management.py

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -108,25 +108,26 @@ async def sync_github_org(self) -> None:
108108
)
109109
return
110110

111-
await report_thread.send(":mag: **GitHub membership sync started**")
112111

113112
common_info = await self._fetch_common_info()
114113
org_added, org_removed = await self._sync_github_members(report_thread, common_info)
115114
team_added, team_removed = await self._sync_github_teams(report_thread, common_info)
116115

117-
logger.info(
118-
"GitHub: Sync complete. "
119-
f"Org added={len(org_added)}, org removed={len(org_removed)}, "
120-
f"team added={len(team_added)}, team removed={len(team_removed)}."
121-
)
122-
123-
await self._report_sync_result(
124-
report_thread,
125-
org_added,
126-
org_removed,
127-
team_added,
128-
team_removed,
129-
)
116+
if org_added or org_removed or team_added or team_removed:
117+
logger.info(
118+
"GitHub: Sync complete. "
119+
f"Org added={len(org_added)}, org removed={len(org_removed)}, "
120+
f"team added={len(team_added)}, team removed={len(team_removed)}."
121+
)
122+
await self._report_sync_result(
123+
report_thread,
124+
org_added,
125+
org_removed,
126+
team_added,
127+
team_removed,
128+
)
129+
else:
130+
logger.info("GitHub: Sync complete. No changes needed.")
130131
except Exception as e: # noqa: BLE001
131132
logger.exception(f"GitHub: Error during sync: {e}", exc_info=True)
132133
report_thread = await self._get_debug_thread()
@@ -142,6 +143,10 @@ async def _report_sync_result(
142143
team_removed: list[str],
143144
) -> None:
144145
"""Report applied membership changes after a sync run."""
146+
# Skip reporting if no changes were made
147+
if not org_added and not org_removed and not team_added and not team_removed:
148+
return
149+
145150
org_added_text = ", ".join(f"`{username}`" for username in org_added) or "none"
146151
org_removed_text = ", ".join(f"`{username}`" for username in org_removed) or "none"
147152
team_added_text = ", ".join(f"`{change}`" for change in team_added) or "none"
@@ -353,16 +358,15 @@ async def _report_org_sync_plan(
353358
plan: OrgSyncPlan,
354359
) -> None:
355360
"""Send planned organisation changes to the configured report thread."""
361+
# Skip reporting if no changes planned
362+
if not plan.diff.to_add and not plan.diff.to_remove:
363+
return
364+
356365
add_lines = [f":green_circle: add to org: `{username}`" for username in plan.diff.to_add]
357366
remove_lines = [
358367
f":red_circle: remove from org: `{username}`" for username in plan.diff.to_remove
359368
]
360369

361-
if not add_lines:
362-
add_lines = [":white_circle: no org additions needed"]
363-
if not remove_lines:
364-
remove_lines = [":white_circle: no org removals needed"]
365-
366370
await self._send_report_lines(
367371
report_thread,
368372
[
@@ -490,6 +494,10 @@ async def _report_team_sync_plan(
490494
plan: TeamSyncPlan,
491495
) -> None:
492496
"""Send planned team changes to the configured report thread."""
497+
# Skip reporting if no changes planned
498+
if not plan.diff.to_add and not plan.diff.to_remove:
499+
return
500+
493501
add_lines = [
494502
f":green_circle: add to `{plan.team_slug}`: `{username}`"
495503
for username in plan.diff.to_add
@@ -499,18 +507,6 @@ async def _report_team_sync_plan(
499507
for username in plan.diff.to_remove
500508
]
501509

502-
if not add_lines and not remove_lines:
503-
await self._send_report_lines(
504-
report_thread,
505-
[f":white_circle: **Team `{plan.team_slug}`**: no membership changes needed"],
506-
)
507-
return
508-
509-
if not add_lines:
510-
add_lines = [f":white_circle: no additions needed in `{plan.team_slug}`"]
511-
if not remove_lines:
512-
remove_lines = [f":white_circle: no removals needed in `{plan.team_slug}`"]
513-
514510
await self._send_report_lines(
515511
report_thread,
516512
[

0 commit comments

Comments
 (0)