@@ -221,26 +221,37 @@ func requestGetTeamMembership(ctx context.Context, client *pagerduty.Client, id
221221 }
222222
223223 err = retry .RetryContext (ctx , 2 * time .Minute , func () * retry.RetryError {
224- resp , err := client .ListTeamMembers (ctx , teamID , pagerduty.ListTeamMembersOptions {Limit : 100 })
225- if err != nil {
226- if util .IsBadRequestError (err ) {
227- return retry .NonRetryableError (err )
228- }
229- if ! retryNotFound && util .IsNotFoundError (err ) {
230- return retry .NonRetryableError (err )
224+ offset := uint (0 )
225+ more := true
226+
227+ for more {
228+ resp , err := client .ListTeamMembers (ctx , teamID , pagerduty.ListTeamMembersOptions {
229+ Limit : 100 ,
230+ Offset : offset ,
231+ })
232+ if err != nil {
233+ if util .IsBadRequestError (err ) {
234+ return retry .NonRetryableError (err )
235+ }
236+ if ! retryNotFound && util .IsNotFoundError (err ) {
237+ return retry .NonRetryableError (err )
238+ }
239+ return retry .RetryableError (err )
231240 }
232- return retry .RetryableError (err )
233- }
234241
235- for _ , m := range resp .Members {
236- if m .User .ID == userID {
237- if neededRole != nil && m .Role != * neededRole {
238- err = fmt .Errorf ("Role %q fetched is different from configuration %q" , m .Role , * neededRole )
239- return retry .RetryableError (err )
242+ for _ , m := range resp .Members {
243+ if m .User .ID == userID {
244+ if neededRole != nil && m .Role != * neededRole {
245+ err = fmt .Errorf ("Role %q fetched is different from configuration %q" , m .Role , * neededRole )
246+ return retry .RetryableError (err )
247+ }
248+ model = flattenTeamMembership (userID , teamID , m .Role )
249+ return nil
240250 }
241- model = flattenTeamMembership (userID , teamID , m .Role )
242- return nil
243251 }
252+
253+ more = resp .More
254+ offset += resp .Limit
244255 }
245256
246257 err = pagerduty.APIError {StatusCode : http .StatusNotFound }
0 commit comments