Skip to content

Commit

Permalink
Change GHE org enum to use since ID instead of pages (#618)
Browse files Browse the repository at this point in the history
* Change GHE org enum to use since ID instead of pages

* fix logging
  • Loading branch information
dustin-decker committed Jun 9, 2022
1 parent 26bf166 commit 9bcddbc
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions pkg/sources/github/github.go
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,11 @@ func (s *Source) addReposByApp(ctx context.Context, apiClient *github.Client) er

func (s *Source) addAllVisibleOrgs(ctx context.Context, apiClient *github.Client) {
s.log.Debug("enumerating all visibile organizations on GHE")
// Enumeration on this endpoint does not use pages. it uses a since ID.
// The endpoint will return organizations with an ID greater than the given since ID.
// Empty org response is our cue to break the enumeration loop.
orgOpts := &github.OrganizationsListOptions{
Since: 0,
ListOptions: github.ListOptions{
PerPage: 100,
},
Expand All @@ -695,7 +699,13 @@ func (s *Source) addAllVisibleOrgs(ctx context.Context, apiClient *github.Client
log.WithError(err).Errorf("Could not list all organizations")
return
}
s.log.Debugf("listed organization page %d/%d", orgOpts.Page, resp.LastPage)
if len(orgs) == 0 {
break
}
lastOrgID := *orgs[len(orgs)-1].ID
s.log.Debugf("listed organization IDs %d through %d", orgOpts.Since, lastOrgID)
orgOpts.Since = lastOrgID

for _, org := range orgs {
var name string
if org.Name != nil {
Expand All @@ -705,13 +715,9 @@ func (s *Source) addAllVisibleOrgs(ctx context.Context, apiClient *github.Client
} else {
continue
}
s.log.Debug("adding organization for repository enumeration: ", name)
s.log.Debugf("adding organization %d for repository enumeration: %s", org.ID, name)
common.AddStringSliceItem(name, &s.orgs)
}
if resp.NextPage == 0 {
break
}
orgOpts.Page = resp.NextPage
}
}

Expand Down

0 comments on commit 9bcddbc

Please sign in to comment.