1
import { TriggerClient } from "@trigger.dev/sdk";
2
import { Github, events } from "@trigger.dev/github";
3
import { Slack } from "@trigger.dev/slack";
4
const github = new Github({ id: "github" });
5
const slack = new Slack({ id: "slack" });
9
id: "github-new-issue-reminder",
10
name: "GitHub: new issue reminder",
12
trigger: github.triggers.repo({
13
event: events.onIssueOpened,
14
owner: "<your-org-name>",
15
repo: "<your-repo-name>",
21
run: async (payload, io, ctx) => {
23
ctx.environment.type === "DEVELOPMENT" ? 3 : 60 * 60 * 24;
24
await io.wait("wait 24 hours", delayDuration);
26
const issue = await io.github.getIssue("get issue", {
27
owner: payload.repository.owner.login,
28
repo: payload.repository.name,
29
issueNumber: payload.issue.number,
32
if (issue.updated_at === payload.issue.updated_at) {
33
const assigneeResult = await io.github.addIssueAssignees("add assignee", {
34
owner: payload.repository.owner.login,
35
repo: payload.repository.name,
36
issueNumber: payload.issue.number,
37
assignees: [payload.sender.login],
40
await io.slack.postMessage("send reminder", {
41
channel: process.env.SLACK_CHANNEL_ID!,
42
text: `Issue ${payload.issue.title} is still open. I've assigned it to ${payload.sender.login}.\n${issue.html_url}`,