@@ -205,27 +205,38 @@ func resourceGithubTeamMembersRead(d *schema.ResourceData, meta interface{}) err
205205 }
206206 Role string
207207 }
208- } `graphql:"members(membership:IMMEDIATE)"`
208+ PageInfo struct {
209+ EndCursor githubv4.String
210+ HasNextPage bool
211+ }
212+ } `graphql:"members(membership:IMMEDIATE, first:100, after: $after)"`
209213 } `graphql:"team(slug:$teamSlug)"`
210214 } `graphql:"organization(login:$orgName)"`
211215 }
212216
213217 variables := map [string ]interface {}{
214218 "teamSlug" : githubv4 .String (teamSlug ),
215219 "orgName" : githubv4 .String (orgName ),
220+ "after" : (* githubv4 .String )(nil ),
216221 }
217222
218- if err := client .Query (ctx , & q , variables ); err != nil {
219- return err
220- }
223+ var teamMembersAndMaintainers []interface {}
224+ for {
225+ if err := client .Query (ctx , & q , variables ); err != nil {
226+ return err
227+ }
221228
222- teamMembersAndMaintainers := make ([]interface {}, len (q .Organization .Team .Members .Edges ))
223- // Add all members to the list
224- for i , member := range q .Organization .Team .Members .Edges {
225- teamMembersAndMaintainers [i ] = map [string ]interface {}{
226- "username" : member .Node .Login ,
227- "role" : strings .ToLower (member .Role ),
229+ // Add all members to the list
230+ for _ , member := range q .Organization .Team .Members .Edges {
231+ teamMembersAndMaintainers = append (teamMembersAndMaintainers , map [string ]interface {}{
232+ "username" : member .Node .Login ,
233+ "role" : strings .ToLower (member .Role ),
234+ })
235+ }
236+ if ! q .Organization .Team .Members .PageInfo .HasNextPage {
237+ break
228238 }
239+ variables ["after" ] = githubv4 .NewString (q .Organization .Team .Members .PageInfo .EndCursor )
229240 }
230241
231242 if err := d .Set ("members" , teamMembersAndMaintainers ); err != nil {
0 commit comments