in functions/src/issues.ts [123:155]
async handleIssueEvent(
event: types.github.WebhookEvent,
action: IssueAction,
issue: types.internal.Issue,
repo: types.internal.Repository,
sender: types.github.Sender
): Promise<types.Action[]> {
switch (action) {
case IssueAction.OPENED:
return this.onNewIssue(repo, issue);
case IssueAction.ASSIGNED:
return this.onIssueAssigned(repo, issue);
case IssueAction.CLOSED:
return this.onIssueStatusChanged(repo, issue, IssueStatus.CLOSED);
case IssueAction.REOPENED:
return this.onIssueStatusChanged(repo, issue, IssueStatus.OPEN);
case IssueAction.LABELED:
return this.onIssueLabeled(repo, issue, event.label.name);
case IssueAction.UNASSIGNED:
/* falls through */
case IssueAction.UNLABELED:
/* falls through */
case IssueAction.EDITED:
/* falls through */
default:
log.debug("Unsupported issue action: " + action);
log.debug("Issue: " + issue.title);
break;
}
// Return empty action array if no action to be taken.
return Promise.resolve([]);
}