Skip to content

Commit 69e5243

Browse files
csaintykfcampbell
andauthored
Page through existing github_team_members (#1848)
Co-authored-by: Keegan Campbell <[email protected]>
1 parent e053623 commit 69e5243

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

github/resource_github_team_members.go

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)