From 5c20fe5b69c72f5c728af3dba67a6524d13d1dce Mon Sep 17 00:00:00 2001 From: Elliott Beach Date: Fri, 6 Oct 2017 11:42:55 -0500 Subject: [PATCH] Add NestedTeamsPreview header to remaining endpoints Fixes #714. --- github/orgs_teams.go | 13 +++++++++++-- github/orgs_teams_test.go | 10 ++++++++-- github/repos.go | 2 ++ github/repos_collaborators.go | 2 ++ github/repos_collaborators_test.go | 1 + github/repos_test.go | 1 + 6 files changed, 25 insertions(+), 4 deletions(-) diff --git a/github/orgs_teams.go b/github/orgs_teams.go index ae3d449be2..27b730f867 100644 --- a/github/orgs_teams.go +++ b/github/orgs_teams.go @@ -8,6 +8,7 @@ package github import ( "context" "fmt" + "strings" "time" ) @@ -195,6 +196,8 @@ func (s *OrganizationsService) DeleteTeam(ctx context.Context, team int) (*Respo return nil, err } + req.Header.Set("Accept", mediaTypeNestedTeamsPreview) + return s.client.Do(ctx, req, nil) } @@ -224,6 +227,8 @@ func (s *OrganizationsService) ListTeamMembers(ctx context.Context, team int, op return nil, nil, err } + req.Header.Set("Accept", mediaTypeNestedTeamsPreview) + var members []*User resp, err := s.client.Do(ctx, req, &members) if err != nil { @@ -264,7 +269,8 @@ func (s *OrganizationsService) ListTeamRepos(ctx context.Context, team int, opt } // TODO: remove custom Accept header when topics API fully launches. - req.Header.Set("Accept", mediaTypeTopicsPreview) + headers := []string{mediaTypeTopicsPreview, mediaTypeNestedTeamsPreview} + req.Header.Set("Accept", strings.Join(headers, ", ")) var repos []*Repository resp, err := s.client.Do(ctx, req, &repos) @@ -287,7 +293,8 @@ func (s *OrganizationsService) IsTeamRepo(ctx context.Context, team int, owner s return nil, nil, err } - req.Header.Set("Accept", mediaTypeOrgPermissionRepo) + headers := []string{mediaTypeOrgPermissionRepo, mediaTypeNestedTeamsPreview} + req.Header.Set("Accept", strings.Join(headers, ", ")) repository := new(Repository) resp, err := s.client.Do(ctx, req, repository) @@ -377,6 +384,8 @@ func (s *OrganizationsService) GetTeamMembership(ctx context.Context, team int, return nil, nil, err } + req.Header.Set("Accept", mediaTypeNestedTeamsPreview) + t := new(Membership) resp, err := s.client.Do(ctx, req, t) if err != nil { diff --git a/github/orgs_teams_test.go b/github/orgs_teams_test.go index 239183c8e1..a21960f2bc 100644 --- a/github/orgs_teams_test.go +++ b/github/orgs_teams_test.go @@ -11,6 +11,7 @@ import ( "fmt" "net/http" "reflect" + "strings" "testing" "time" ) @@ -159,6 +160,7 @@ func TestOrganizationsService_DeleteTeam(t *testing.T) { mux.HandleFunc("/teams/1", func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "DELETE") + testHeader(t, r, "Accept", mediaTypeNestedTeamsPreview) }) _, err := client.Organizations.DeleteTeam(context.Background(), 1) @@ -173,6 +175,7 @@ func TestOrganizationsService_ListTeamMembers(t *testing.T) { mux.HandleFunc("/teams/1/members", func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "GET") + testHeader(t, r, "Accept", mediaTypeNestedTeamsPreview) testFormValues(t, r, values{"role": "member", "page": "2"}) fmt.Fprint(w, `[{"id":1}]`) }) @@ -296,7 +299,8 @@ func TestOrganizationsService_ListTeamRepos(t *testing.T) { mux.HandleFunc("/teams/1/repos", func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "GET") - testHeader(t, r, "Accept", mediaTypeTopicsPreview) + acceptHeaders := []string{mediaTypeTopicsPreview, mediaTypeNestedTeamsPreview} + testHeader(t, r, "Accept", strings.Join(acceptHeaders, ", ")) testFormValues(t, r, values{"page": "2"}) fmt.Fprint(w, `[{"id":1}]`) }) @@ -319,7 +323,8 @@ func TestOrganizationsService_IsTeamRepo_true(t *testing.T) { mux.HandleFunc("/teams/1/repos/o/r", func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "GET") - testHeader(t, r, "Accept", mediaTypeOrgPermissionRepo) + acceptHeaders := []string{mediaTypeOrgPermissionRepo, mediaTypeNestedTeamsPreview} + testHeader(t, r, "Accept", strings.Join(acceptHeaders, ", ")) fmt.Fprint(w, `{"id":1}`) }) @@ -451,6 +456,7 @@ func TestOrganizationsService_GetTeamMembership(t *testing.T) { mux.HandleFunc("/teams/1/memberships/u", func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "GET") + testHeader(t, r, "Accept", mediaTypeNestedTeamsPreview) fmt.Fprint(w, `{"url":"u", "state":"active"}`) }) diff --git a/github/repos.go b/github/repos.go index e3fe26fc26..13daa7e927 100644 --- a/github/repos.go +++ b/github/repos.go @@ -481,6 +481,8 @@ func (s *RepositoriesService) ListTeams(ctx context.Context, owner string, repo return nil, nil, err } + req.Header.Set("Accept", mediaTypeNestedTeamsPreview) + var teams []*Team resp, err := s.client.Do(ctx, req, &teams) if err != nil { diff --git a/github/repos_collaborators.go b/github/repos_collaborators.go index 100a925728..61ee9d39c6 100644 --- a/github/repos_collaborators.go +++ b/github/repos_collaborators.go @@ -41,6 +41,8 @@ func (s *RepositoriesService) ListCollaborators(ctx context.Context, owner, repo return nil, nil, err } + req.Header.Set("Accept", mediaTypeNestedTeamsPreview) + var users []*User resp, err := s.client.Do(ctx, req, &users) if err != nil { diff --git a/github/repos_collaborators_test.go b/github/repos_collaborators_test.go index 4ac23934c7..4f3d47707d 100644 --- a/github/repos_collaborators_test.go +++ b/github/repos_collaborators_test.go @@ -20,6 +20,7 @@ func TestRepositoriesService_ListCollaborators(t *testing.T) { mux.HandleFunc("/repos/o/r/collaborators", func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "GET") + testHeader(t, r, "Accept", mediaTypeNestedTeamsPreview) testFormValues(t, r, values{"page": "2"}) fmt.Fprintf(w, `[{"id":1}, {"id":2}]`) }) diff --git a/github/repos_test.go b/github/repos_test.go index 43f8bda70e..9e522c82c2 100644 --- a/github/repos_test.go +++ b/github/repos_test.go @@ -404,6 +404,7 @@ func TestRepositoriesService_ListTeams(t *testing.T) { mux.HandleFunc("/repos/o/r/teams", func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "GET") + testHeader(t, r, "Accept", mediaTypeNestedTeamsPreview) testFormValues(t, r, values{"page": "2"}) fmt.Fprint(w, `[{"id":1}]`) })