From 721bbc14e825f9ccf29fd5db6e655c875f621bf0 Mon Sep 17 00:00:00 2001 From: James Wilkinson Date: Mon, 17 Aug 2026 12:34:09 +0100 Subject: [PATCH] Treat BusinessTeam as a regular Team for Environment reviewers --- github/repos_environments.go | 9 ++++++++- github/repos_environments_test.go | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/github/repos_environments.go b/github/repos_environments.go index 5e892e5f59c..1f1d5b56e33 100644 --- a/github/repos_environments.go +++ b/github/repos_environments.go @@ -101,10 +101,17 @@ func (r *RequiredReviewer) UnmarshalJSON(data []byte) error { return err } r.Reviewer = reviewer.Reviewer + case "BusinessTeam": // BusinessTeam is the type returned for Enterprise Teams, but we will treat it as a Team type + reviewer.Reviewer = &Team{} + if err := json.Unmarshal(data, &reviewer); err != nil { + return err + } + r.Type = Ptr("Team") // Change the type to "Team" for compatibility + r.Reviewer = reviewer.Reviewer default: r.Type = nil r.Reviewer = nil - return fmt.Errorf("reviewer.Type is %T, not a string of 'User' or 'Team', unable to unmarshal", reviewer.Type) + return fmt.Errorf("reviewer.Type is %T, not a string of 'User', 'Team' or 'BusinessTeam', unable to unmarshal", reviewer.Type) } return nil diff --git a/github/repos_environments_test.go b/github/repos_environments_test.go index 2dddb226bad..ecd2481c5b1 100644 --- a/github/repos_environments_test.go +++ b/github/repos_environments_test.go @@ -31,6 +31,11 @@ func TestRequiredReviewer_UnmarshalJSON(t *testing.T) { wantRule: []*RequiredReviewer{{Type: Ptr("Team"), Reviewer: &Team{ID: Ptr(int64(1)), Name: Ptr("Justice League")}}}, wantError: false, }, + "Enterprise Team Reviewer": { + data: []byte(`[{"type": "BusinessTeam", "reviewer": {"id": 1, "name": "Justice League"}}]`), + wantRule: []*RequiredReviewer{{Type: Ptr("Team"), Reviewer: &Team{ID: Ptr(int64(1)), Name: Ptr("Justice League")}}}, + wantError: false, + }, "Both Types Reviewer": { data: []byte(`[{"type": "User", "reviewer": {"id": 1,"login": "octocat"}},{"type": "Team", "reviewer": {"id": 1, "name": "Justice League"}}]`), wantRule: []*RequiredReviewer{{Type: Ptr("User"), Reviewer: &User{ID: Ptr(int64(1)), Login: Ptr("octocat")}}, {Type: Ptr("Team"), Reviewer: &Team{ID: Ptr(int64(1)), Name: Ptr("Justice League")}}},