@@ -120,14 +120,19 @@ export function registerGitHubOAuth(server: FastifyInstance, config: Config) {
120120 return data
121121 }
122122
123- const getGitHubOrgMemberships = async ( ) : Promise < GitHubOrgMembership [ ] > => {
123+ const getGitHubOrgMemberships = async ( page = 1 ) : Promise < GitHubOrgMembership [ ] > => {
124124 const url = urls . githubOrgMembers
125125 const headers = {
126126 Accept : "application/json" ,
127127 Authorization : `Bearer ${ config . githubOrgAdminToken } ` ,
128128 }
129129
130- const { data } = await axios . get < GitHubOrgMembership [ ] > ( url , { headers } )
130+ const params = {
131+ per_page : 100 ,
132+ page,
133+ }
134+
135+ const { data } = await axios . get < GitHubOrgMembership [ ] > ( url , { headers, params } )
131136
132137 return data
133138 }
@@ -204,13 +209,18 @@ export function registerGitHubOAuth(server: FastifyInstance, config: Config) {
204209 const state = retrieveState ( req , res )
205210 const tokenData = await getGitHubAccessToken ( code )
206211 const user = await getGitHubUser ( tokenData )
207- const members = await getGitHubOrgMemberships ( )
208212
209- console . log ( "User: " , user . login )
210- console . log (
211- "Members: " ,
212- members . map ( ( member ) => member . login ) ,
213- )
213+ console . log ( "Login attempt:" , user . login )
214+
215+ let members : GitHubOrgMembership [ ] = [ ]
216+ let page = 1
217+ let isUserMember = false
218+
219+ do {
220+ members = await getGitHubOrgMemberships ( page )
221+ page ++
222+ isUserMember = members . some ( ( member ) => member . login === user . login )
223+ } while ( ! isUserMember && members . length )
214224
215225 if ( ! members . find ( ( member ) => member . login === user . login ) ) {
216226 return res . redirect ( 302 , urls . localMembershipError )
0 commit comments