Skip to content

Commit d634313

Browse files
authored
Merge pull request #139 from creativecommons/sync-community-team-failgood
fail gracefully when a user does not exist (ex. GitHub user rename)
2 parents 9ccb78f + fc9c765 commit d634313

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

sync_community_team/set_teams_on_github.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
}
1313

1414

15-
def create_teams_for_data(databag):
15+
def create_teams_for_data(databag, exit_status):
1616
client = set_up_github_client()
1717
organization = get_cc_organization(client)
1818

@@ -41,14 +41,15 @@ def create_teams_for_data(databag):
4141

4242
print(f" Populating members for team {team.name}...")
4343
members = [member["github"] for member in members]
44-
map_team_to_members(client, team, members, True)
44+
exit_status = map_team_to_members(client, team, members, exit_status, True)
4545
print(" Done.")
4646
print(" Done.")
4747
print("Done.")
48+
return exit_status
4849

4950

5051
def map_team_to_members(
51-
client, team, final_user_logins, non_destructive=False
52+
client, team, final_user_logins, exit_status, non_destructive=False
5253
):
5354
"""
5455
Map the team to the given set of members. Any members that are not already
@@ -78,13 +79,15 @@ def map_team_to_members(
7879
user = client.get_user(login)
7980
except UnknownObjectException:
8081
print(f" ERROR: User not found: {login}")
81-
raise
82+
exit_status = 1
83+
continue
8284
team.add_membership(user)
8385

8486
current_login = client.get_user().login
8587
if current_login not in final_user_logins:
8688
current_user = client.get_user(current_login)
8789
team.remove_membership(current_user)
90+
return exit_status
8891

8992

9093
def map_team_to_repos(

sync_community_team/sync_teams.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ def __init__(self, message, code=None):
1818

1919

2020
def main():
21-
create_teams_for_data(get_community_team_data())
21+
exit_status = 0
22+
exit_status = create_teams_for_data(get_community_team_data(), exit_status)
2223
create_codeowners_for_data(get_community_team_data())
24+
sys.exit(exit_status)
2325

2426

2527
if __name__ == "__main__":

0 commit comments

Comments
 (0)