From d5d6bdc9a58c5cc757cb739e038b7a15c961d36d Mon Sep 17 00:00:00 2001 From: Clemens Lang Date: Mon, 26 May 2025 11:23:34 +0200 Subject: [PATCH 1/2] CI: Run on modern Ubuntu --- .github/workflows/runtests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/runtests.yml b/.github/workflows/runtests.yml index 8a7446f..6acc99b 100644 --- a/.github/workflows/runtests.yml +++ b/.github/workflows/runtests.yml @@ -3,7 +3,7 @@ run-name: Run test suite for trac-github on: [pull_request] jobs: runtests-py2: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest container: image: python:2.7.18-buster From f859fb82d9adac61f93994f17fa8f1e717a92ee0 Mon Sep 17 00:00:00 2001 From: Clemens Lang Date: Mon, 26 May 2025 11:19:00 +0200 Subject: [PATCH 2/2] Use modern GitHub API to read team members MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The old API was deprecated a while ago, and while I couldn't find notices of it being sunset or affected by brownouts right now, I do notice that it has stopped working currently — whether that's temporary or permanent I don't know, but it doesn't hurt to merge this improvement. Closes: #135 Signed-off-by: Clemens Lang --- runtests.py | 20 ++++++++++---------- tracext/github/__init__.py | 3 ++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/runtests.py b/runtests.py index 0c35226..77c6821 100755 --- a/runtests.py +++ b/runtests.py @@ -1528,8 +1528,8 @@ def test_006_normal_operation(self): "slug": u"gentlepeople" } ], - '/teams/1/members': team1members, - '/teams/12/members': team12members + '/organizations/%s/team/1/members' % self.organization: team1members, + '/organizations/%s/team/12/members' % self.organization: team12members }) with TracContext(self, env=self.tracd_env_debug, **self.trac_env): @@ -1711,8 +1711,8 @@ def test_012_hook_membership_event_delete_team(self): "slug": u"gentlepeople" } ], - '/teams/1/members': team1members, - '/teams/12/members': team12members + '/organizations/%s/team/1/members' % self.organization: team1members, + '/organizations/%s/team/12/members' % self.organization: team12members }) update = { @@ -1744,7 +1744,7 @@ def test_012_hook_membership_event_delete_team(self): "slug": u"gentlepeople" } ], - '/teams/12/members': team12members + '/organizations/%s/team/12/members' % self.organization: team12members }) # Send the delete event @@ -1829,7 +1829,7 @@ def test_014_hook_membership_event_add_team(self): "slug": u"justice-league" }, ], - '/teams/1/members': team1members, + '/organizations/%s/team/1/members' % self.organization: team1members, }) # Send the update event @@ -1872,7 +1872,7 @@ def test_015_hook_membership_event_add_member(self): "slug": u"justice-league" }, ], - '/teams/1/members': list(team1members) + '/organizations/%s/team/1/members' % self.organization: list(team1members) }) update = { @@ -1894,7 +1894,7 @@ def test_015_hook_membership_event_add_member(self): "slug": u"justice-league" }, ], - '/teams/1/members': list(team1members) + '/organizations/%s/team/1/members' % self.organization: list(team1members) }) # Send the update event @@ -1937,7 +1937,7 @@ def test_016_hook_membership_event_remove_member(self): "slug": u"justice-league" }, ], - '/teams/1/members': list(team1members) + '/organizations/%s/team/1/members' % self.organization: list(team1members) }) update = { @@ -1959,7 +1959,7 @@ def test_016_hook_membership_event_remove_member(self): "slug": u"justice-league" }, ], - '/teams/1/members': list(team1members) + '/organizations/%s/team/1/members' % self.organization: list(team1members) }) # Send the update event diff --git a/tracext/github/__init__.py b/tracext/github/__init__.py index 0dddb2b..fe9dc6f 100644 --- a/tracext/github/__init__.py +++ b/tracext/github/__init__.py @@ -475,11 +475,12 @@ def __init__(self, api, env, org, teamid, slug): # pylint: disable=too-many-argu :param slug: the GitHub team shortname in URL representation """ self._teamid = teamid + self._orgid = org fullname = '-'.join(['github', org, slug]) super(GitHubTeam, self).__init__(api, env, fullname) def _apicall_parameters(self): - return ("teams/{}/members", self._teamid) + return ("organizations/{}/team/{}/members", self._orgid, self._teamid) #class GitHubOrgMembers(GitHubUserCollection): # """