Back to jobs

New GitHub star to Slack

Trigger: eventTrigger

When a repo is starred, a message is sent to a Slack channel with the name and URL of the GitHub user who starred the repo, and the updated Stargazers count.

Integrations:

/src/githubNewStarToSlack

Dev Ops

Alerts

1
import { TriggerClient } from "@trigger.dev/sdk";
2
import { Github, events } from "@trigger.dev/github";
3
import { Slack } from "@trigger.dev/slack";
4
5
const client = new TriggerClient({ id: "jobs-showcase" });
6
7
const github = new Github({ id: "github" });
8
const slack = new Slack({ id: "slack" });
9
10
// This Job will run when a star is added or removed from the triggerdotdev/trigger.dev repo
11
client.defineJob({
12
id: "github-new-star-to-slack",
13
name: "GitHub: new star to slack",
14
version: "1.0.0",
15
trigger: github.triggers.repo({
16
event: events.onStar,
17
owner: "<your-org-name>",
18
repo: "<your-repo-name>",
19
}),
20
integrations: {
21
slack,
22
},
23
run: async (payload, io, ctx) => {
24
await io.slack.postMessage("post message", {
25
channel: process.env.SLACK_CHANNEL_ID!,
26
text: `New GitHub star from ${payload.sender.html_url}, ${payload.sender.name}. Your new GitHub star count is ${payload.repository.stargazers_count}.`,
27
});
28
},
29
});
30
31
// These lines can be removed if you don't want to use express
32
import { createExpressServer } from "@trigger.dev/express";
33
createExpressServer(client);