Files
SpacetimeDB/.github/scripts/checkMembership.mjs
T
John Detter bf7b4b5806 Before, we were being limited to just 30 results. This impl will (#207)
paginate so that all members are returned

Co-authored-by: Boppy <no-reply@boppygames.gg>
2023-08-21 10:12:09 -05:00

41 lines
1002 B
JavaScript

import { Octokit } from "@octokit/rest";
import core from "@actions/core";
import github from "@actions/github";
import fetch from "node-fetch";
const octokit = new Octokit({
auth: process.env.GITHUB_TOKEN,
request: {
fetch: fetch
}
});
async function isMemberOfOrganization(username) {
let isMember = false;
try {
const members = await octokit.paginate(octokit.orgs.listMembers, {
org: "clockworklabs",
per_page: 100
});
isMember = members.some(member => member.login === username);
} catch (error) {
core.setFailed(error.message);
}
return isMember;
}
async function main() {
const context = github.context;
const prAuthor = context.payload.pull_request.user.login;
if (await isMemberOfOrganization(prAuthor)) {
console.log(`${prAuthor} is a member of the organization`);
} else {
core.setFailed(`${prAuthor} is not a member of the organization`);
}
}
main();