aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Chris Lovering <[email protected]>2024-02-13 19:30:10 +0000
committerGravatar Chris Lovering <[email protected]>2024-02-13 19:38:37 +0000
commit4611767339d9804b412edf32a93ec5e4a94ada18 (patch)
treed88e6c39952b7fce4f6dde5b67a72ee77d9b4bee
parentRefactor adding members to Grafana team to its own function (diff)
Don't keep track of the set of users added to Grafana team
The caller only needs the number of users added
-rw-r--r--arthur/exts/grafana/team_sync.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/arthur/exts/grafana/team_sync.py b/arthur/exts/grafana/team_sync.py
index 169bef8..6af539e 100644
--- a/arthur/exts/grafana/team_sync.py
+++ b/arthur/exts/grafana/team_sync.py
@@ -38,7 +38,11 @@ class GrafanaTeamSync(commands.Cog):
self.sync_github_grafana_teams.start()
async def _add_missing_members(
- self, grafana_team_id: int, github_team_members: set[str], grafana_team_members: set[str]
+ self,
+ grafana_team_id: int,
+ github_team_members: set[str],
+ grafana_team_members: set[str],
+ all_grafana_users: list[dict],
) -> MissingMembers:
"""
Adds members to the Grafana team if they're in the Github team and not already present.
@@ -46,9 +50,8 @@ class GrafanaTeamSync(commands.Cog):
Returns the number of missing members, and the number of members it could actually add.
"""
missing_members = github_team_members - grafana_team_members
- grafana_users = await grafana.get_all_users(self.bot.http_session)
- added_members = set()
- for grafana_user in grafana_users:
+ added_members = 0
+ for grafana_user in all_grafana_users:
if grafana_user["login"] not in missing_members:
continue
await grafana.add_user_to_team(
@@ -56,8 +59,8 @@ class GrafanaTeamSync(commands.Cog):
grafana_team_id,
self.bot.http_session,
)
- added_members.add(grafana_user["login"])
- return MissingMembers(count=len(missing_members), successfully_added=len(added_members))
+ added_members += 1
+ return MissingMembers(count=len(missing_members), successfully_added=added_members)
async def _sync_teams(self, team: dict[str, str]) -> SyncFigures:
"""
@@ -75,10 +78,12 @@ class GrafanaTeamSync(commands.Cog):
if member.get("auth_module") == "oauth_github"
}
+ all_grafana_users = await grafana.get_all_users(self.bot.http_session)
added_members = await self._add_missing_members(
team["id"],
github_team_members,
grafana_team_members,
+ all_grafana_users,
)
removed_members = 0 # TODO Actually remove members who shouldn't be present.