Skip to content

Commit 0313237

Browse files
Extract Members Loose-ends (#93)
* rename file * remove useless try-catch block * remove pre-set pagination parameters * change pagination optional type from null to undefined * add default first page to gitlab integration * config stack to reflect name change * add first page parameter to gitlab * fix optional parameter --------- Co-authored-by: David Abram <[email protected]>
1 parent f424ac1 commit 0313237

File tree

3 files changed

+8
-11
lines changed

3 files changed

+8
-11
lines changed

apps/extract-stack/src/extract-member.ts renamed to apps/extract-stack/src/extract-members.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,14 @@ type ExtractMembersPageInput = {
5050
repository: Repository;
5151
sourceControl: "github" | "gitlab";
5252
userId: string;
53-
paginationInfo: Pagination | null;
53+
paginationInfo?: Pagination;
5454
}
5555

5656
const extractMembersPage = async ({ namespace, repository, sourceControl, userId, paginationInfo }: ExtractMembersPageInput) => {
5757
const page = paginationInfo?.page;
5858
const perPage = paginationInfo?.perPage;
5959

60-
try {
61-
context.integrations.sourceControl = await initSourceControl(userId, sourceControl);
62-
} catch (error) {
63-
console.error(error);
64-
throw error;
65-
}
60+
context.integrations.sourceControl = await initSourceControl(userId, sourceControl);
6661

6762
const { paginationInfo: resultPaginationInfo } = await getMembers({
6863
externalRepositoryId: repository.externalId,
@@ -82,7 +77,6 @@ export const eventHandler = EventHandler(extractRepositoryEvent, async (ev) => {
8277
repository: ev.properties.repository,
8378
sourceControl: ev.metadata.sourceControl,
8479
userId: ev.metadata.userId,
85-
paginationInfo: { page: 1, perPage: 2, totalPages: 1000 },
8680
});
8781

8882
const arrayOfExtractMemberPageMessageContent: { repository: Repository, namespace: Namespace | null, pagination: Pagination }[] = [];
@@ -97,7 +91,7 @@ export const eventHandler = EventHandler(extractRepositoryEvent, async (ev) => {
9791
}
9892
})
9993
}
100-
94+
10195
if (arrayOfExtractMemberPageMessageContent.length === 0) return console.log("No more pages left, no need to enqueue");
10296

10397
await extractMemberPageMessage.sendAll(arrayOfExtractMemberPageMessageContent, {

apps/extract-stack/src/stack.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ export function ExtractStack({ stack }: StackContext) {
4747
CLERK_SECRET_KEY,
4848
DATABASE_AUTH_TOKEN,
4949
], // Issue: need to bind bus because same file
50-
handler: "src/extract-member.queueHandler",
50+
handler: "src/extract-members.queueHandler",
5151
},
5252
});
5353

5454
bus.addTargets(stack, "repository", {
5555
extractMember: {
5656
function: {
5757
bind: [bus, membersQueue, mergeRequestQueue],
58-
handler: "src/extract-member.eventHandler",
58+
handler: "src/extract-members.eventHandler",
5959
},
6060
},
6161
});

packages/integrations/source-control/src/gitlab/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,13 @@ export class GitlabSourceControl implements SourceControl {
3131
}
3232

3333
async fetchMembers(externalRepositoryId: number, namespaceName: string, repositoryName: string, page?: number, perPage?: number): Promise<{ members: NewMember[], pagination: Pagination }> {
34+
const isFirstPage = page === undefined && perPage === undefined;
35+
3436
const { data, paginationInfo } = await this.api.ProjectMembers.all(externalRepositoryId, {
3537
includeInherited: true,
3638
perPage,
3739
page,
40+
maxPages: isFirstPage ? 1 : undefined,
3841
pagination: 'offset',
3942
showExpanded: true,
4043
});

0 commit comments

Comments
 (0)