@@ -205,17 +205,52 @@ func resourceGithubTeamMembersRead(d *schema.ResourceData, meta interface{}) err
205205 ctx = context .WithValue (ctx , ctxEtag , d .Get ("etag" ).(string ))
206206 }
207207
208+ etags := make ([]string , 0 )
208209 // List members & maintainers as list 'all' drops role information
209210 log .Printf ("[DEBUG] Reading team members: %s" , teamIdString )
210- members , resp1 , err := client .Teams .ListTeamMembersByID (ctx , orgId , teamId , & github.TeamListTeamMembersOptions {Role : "member" })
211- if err != nil {
212- return err
211+ memberOptions := github.TeamListTeamMembersOptions {
212+ ListOptions : github.ListOptions {
213+ PerPage : maxPerPage ,
214+ },
215+ Role : "member" ,
216+ }
217+
218+ var members []* github.User
219+ for {
220+ member , resp , err := client .Teams .ListTeamMembersByID (ctx , orgId , teamId , & memberOptions )
221+ if err != nil {
222+ return err
223+ }
224+
225+ etags = append (etags , resp .Header .Get ("ETag" ))
226+ members = append (members , member ... )
227+ if resp .NextPage == 0 {
228+ break
229+ }
230+ memberOptions .Page = resp .NextPage
213231 }
214232
215233 log .Printf ("[DEBUG] Reading team maintainers: %s" , teamIdString )
216- maintainers , resp2 , err := client .Teams .ListTeamMembersByID (ctx , orgId , teamId , & github.TeamListTeamMembersOptions {Role : "maintainer" })
217- if err != nil {
218- return err
234+ maintainerOptions := github.TeamListTeamMembersOptions {
235+ ListOptions : github.ListOptions {
236+ PerPage : maxPerPage ,
237+ },
238+ Role : "maintainer" ,
239+ }
240+ var maintainers []* github.User
241+ for {
242+ maintaner , resp , err := client .Teams .ListTeamMembersByID (ctx , orgId , teamId , & maintainerOptions )
243+ if err != nil {
244+ return err
245+ }
246+
247+ etags = append (etags , resp .Header .Get ("ETag" ))
248+ maintainers = append (maintainers , maintaner ... )
249+
250+ if resp .NextPage == 0 {
251+ break
252+ }
253+ maintainerOptions .Page = resp .NextPage
219254 }
220255
221256 teamMembersAndMaintainers := make ([]interface {}, len (members )+ len (maintainers ))
@@ -238,8 +273,8 @@ func resourceGithubTeamMembersRead(d *schema.ResourceData, meta interface{}) err
238273 return err
239274 }
240275
241- // Combine etag of both requests
242- d .Set ("etag" , buildTwoPartID ( resp1 . Header . Get ( "ETag" ), resp2 . Header . Get ( "ETag" ) ))
276+ // Combine etag of all requests
277+ d .Set ("etag" , buildChecksumID ( etags ))
243278
244279 return nil
245280}
0 commit comments