Skip to content

Commit

Permalink
fix: only administrators are able to start a demo
Browse files Browse the repository at this point in the history
  • Loading branch information
gentlementlegen committed Feb 13, 2025
1 parent 690387f commit b7c604f
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions src/handlers/run-demo.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
import { Context } from "../types";

async function isUserAdmin({ payload, octokit, logger }: Context) {
const username = payload.sender.login;
try {
await octokit.rest.orgs.getMembershipForUser({
org: payload.repository.owner.login,
username,
});
return true;
} catch (e) {
logger.debug(`${username} is not a member of ${payload.repository.owner.login}`, { e });
return false;
}
}

async function setLabels({ payload, octokit }: Context) {
const repo = payload.repository.name;
const issueNumber = payload.issue.number;
Expand Down Expand Up @@ -100,6 +114,9 @@ export async function handleComment(context: Context<"issue_comment.created">) {
const owner = payload.repository.owner.login;

if (body.trim().startsWith("/demo")) {
if (!(await isUserAdmin(context))) {
throw logger.error("You are not an organization member thus cannot start a demo.");
}
logger.info("Processing /demo command");
await openIssue(context);
await setLabels(context);
Expand All @@ -115,14 +132,14 @@ export async function handleComment(context: Context<"issue_comment.created">) {
}

export async function handleLabel(context: Context<"issues.labeled">) {
const { payload, userOctokit, logger } = context;
const { payload, userOctokit, logger, config } = context;

const repo = payload.repository.name;
const issueNumber = payload.issue.number;
const owner = payload.repository.owner.login;
const label = payload.label;

if (label?.name.startsWith("Price")) {
if (label?.name.startsWith("Price") && payload.issue.assignee?.login === config.userName) {
logger.info("Handle pricing label set", { label });
await userOctokit.rest.issues.createComment({
owner,
Expand Down

0 comments on commit b7c604f

Please sign in to comment.