diff --git a/README.md b/README.md
index 52fb95ba031..c525a9630db 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
-
+### The Trigger.dev Private beta is now open. Sign up for access [here](https://bcymafitv0e.typeform.com/tddsignup#source=GitHubReadme).
+
- ### We are now accepting users 😊! Request early access [here](https://bcymafitv0e.typeform.com/tddsignup#source=GitHubReadme).
+
-
---
@@ -12,7 +12,9 @@

-[](https://twitter.com/intent/follow?screen_name=triggerdotdev)
+[](https://twitter.com/triggerdotdev)
+
+
# ⚙️ Automate complex workflows with code
diff --git a/apps/docs/examples/examples.mdx b/apps/docs/examples/examples.mdx
index 4c380405fa6..bf39b257665 100644
--- a/apps/docs/examples/examples.mdx
+++ b/apps/docs/examples/examples.mdx
@@ -1,17 +1,26 @@
---
title: "Example workflows"
-sidebarTitle: "Example workflows"
-description: "Example workflows."
+sidebarTitle: "Overview"
+description: "Example workflows to use in your projects."
---
-# Example workflows
+
+ Trigger.dev is in private beta. We are now inviting users from our waitlist
+ [here.](https://bcymafitv0e.typeform.com/tddsignup?typeform-source=trigger.dev#source=Docs)
+
+
+Not sure what to build? Take a look through our examples for inspiration.
+You can use these workflows in your product by following the instructions on each page.
-
-
-
+
+ When a GitHub issue is created or modified, post a message to Slack.
+
+
+ Create a new product in my Shopify store.
+
+
+ Post to Slack when a GitHub issue is created or modified.
+
+
diff --git a/apps/docs/functions/logging.mdx b/apps/docs/functions/logging.mdx
index 7123cd047ce..f868fb9bea4 100644
--- a/apps/docs/functions/logging.mdx
+++ b/apps/docs/functions/logging.mdx
@@ -4,4 +4,38 @@ sidebarTitle: "Logging"
description: "There are 4 different types of logs you can add as workflow steps."
---
-## Coming soon
+If you'd like to add additional logging to your workflow run, you can use our built-in logging utility
+
+## Usage
+
+```ts
+import { Trigger } from "@trigger.dev/sdk";
+
+new Trigger({
+ id: "my-trigger",
+ on: scheduleEvent({ rateOf: { minutes: 5 } }),
+ run: async (event, ctx) => {
+ await ctx.logger.info("It's been 5 minutes since the last run!");
+ },
+}).listen();
+```
+
+This will log the message to your workflow run page in the Trigger dashboard
+
+There are 4 different types of logs you can add as workflow steps:
+
+```ts
+await ctx.logger.info("It's been 5 minutes since the last run!");
+await ctx.logger.debug("This is a debug log");
+await ctx.logger.warn("This is a warning");
+await ctx.logger.error("This is an error");
+```
+
+You can also include a second argument to the logger to add additional metadata to the log:
+
+```ts
+await ctx.logger.info("It's been 5 minutes since the last run!", {
+ foo: "bar",
+ baz: 123,
+});
+```
diff --git a/apps/docs/functions/loops-conditionals-etc.mdx b/apps/docs/functions/loops-conditionals-etc.mdx
index 93378b49e6f..7015718b966 100644
--- a/apps/docs/functions/loops-conditionals-etc.mdx
+++ b/apps/docs/functions/loops-conditionals-etc.mdx
@@ -4,4 +4,47 @@ sidebarTitle: "Loops, Conditionals…"
description: "Write any type of code."
---
-## Coming soon
+Currently, we don't have anything special for loops or conditionals. You can just write plain-old TypeScript code and it will Just Work™.
+
+## Loops
+
+When you perform an action (sendEvent, delays, etc.) inside of a loop, make sure to create unique keys for each action to make sure that your workflows are [Resumable](/guides/resumability):
+
+```ts
+for (let i = 0; i < 10; i++) {
+ await ctx.waitFor(`Wait ${i}`, { seconds: 30 });
+
+ await slack.postMessage(`⭐️ New Star ${i}`, {
+ channelName: "github-stars",
+ text: `@${starredBy} just starred ${repoName}!`,
+ });
+}
+```
+
+## Parallel Execution
+
+You can run actions in parallel using `Promise.all`, like so:
+
+```ts
+await Promise.all(
+ messages.map((message) =>
+ slack.postMessage(message.id, {
+ channelName: "github-stars",
+ text: message.text,
+ })
+ )
+);
+```
+
+## Conditionals
+
+You can use `if` statements to conditionally execute code, just like normal code:
+
+```ts
+if (ctx.event.payload.action === "opened") {
+ await slack.postMessage("New Issue", {
+ channelName: "github-issues",
+ text: `@${ctx.event.payload.sender.login} just opened an issue!`,
+ });
+}
+```
diff --git a/apps/docs/get-help.mdx b/apps/docs/get-help.mdx
new file mode 100644
index 00000000000..ad81fb2d93f
--- /dev/null
+++ b/apps/docs/get-help.mdx
@@ -0,0 +1,26 @@
+---
+title: "Get in touch with us!"
+sidebarTitle: "Get help"
+description: "Contact us if you have any questions, or would like help with any issues."
+---
+
+We are active in the community and will respond to all messages.
+
+Please email us at help@trigger.dev or choose one of the options below:
+
+
+
+ The place to meet other users, the team and to get product updates.
+
+
+ A call with someone from our support team. We are happy to help.
+
+
diff --git a/apps/docs/getting-started.mdx b/apps/docs/getting-started.mdx
index 58d3da4fff2..42d05273fcd 100644
--- a/apps/docs/getting-started.mdx
+++ b/apps/docs/getting-started.mdx
@@ -4,6 +4,11 @@ sidebarTitle: "Quick start"
description: "Get your first workflow running in just a few minutes"
---
+
+ Trigger.dev is in private beta. We are now inviting users from our waitlist
+ [here.](https://bcymafitv0e.typeform.com/tddsignup?typeform-source=trigger.dev#source=Docs)
+
+
Trigger.dev workflows are written in your codebase and run in your existing infrastructure. This means:
- They are version controlled with the rest of your code.
@@ -182,6 +187,15 @@ When you run your server and this code executes, it will trigger the workflow. Y
## Next steps
+
+ Meet other users, get help and product updates. We will respond to all
+ messages and will help with any issues.
+
+
There are many things we didn't cover here, including Webhook and Scheduled triggers. Below are a some more features to explore:
### Triggers
@@ -192,13 +206,13 @@ Triggers are what cause your workflows to run.
Easily subscribe to the APIs you're using
-
+
Trigger your workflows on a repeating schedule
-
+
More details on custom events
-
+
On received email, HTTP endpoint and AWS Event Bridge
@@ -213,11 +227,14 @@ Triggers are what cause your workflows to run.
>
We are making it easy to use lots of APIs by adding integrations.
-
+
+ Call any API from your workflow
+
+
Add delays to your workflows. They're resilient so it doesn't matter if your
server goes down.
-
+
Send an event, to trigger a custom event workflow
diff --git a/apps/docs/guides/event-driven.mdx b/apps/docs/guides/event-driven.mdx
new file mode 100644
index 00000000000..4392d4a818e
--- /dev/null
+++ b/apps/docs/guides/event-driven.mdx
@@ -0,0 +1,9 @@
+---
+title: "Event Driven Architecture"
+sidebarTitle: "Event Driven"
+description: "How to build an event driven architecture using Trigger.dev"
+---
+
+## Intro
+
+Coming soon...
diff --git a/apps/docs/guides/resumability.mdx b/apps/docs/guides/resumability.mdx
index 6e689ae026f..8ad09b38675 100644
--- a/apps/docs/guides/resumability.mdx
+++ b/apps/docs/guides/resumability.mdx
@@ -1,7 +1,72 @@
---
title: "Resumability"
sidebarTitle: "Keys and Resumability"
-description: "Keys and Resumability"
+description: "Understand how keys work to ensure resumability of long-running workflows in Trigger.dev"
---
-## Coming soon
+## Intro
+
+In this article, we'll cover how Trigger.dev handles resumability of long-running workflows. We'll also cover how to use keys to ensure that your workflows are resumable.
+
+## What is resumability?
+
+Resumability is the ability of a workflow run to continue from where it left off after a failure or interruption. For example, if a workflow run is interrupted due to a network failure, it should be able to resume from where it left off when the network is back up.
+
+We accomplish this by storing the state of the workflow run in a database, and when a workflow run is resumed we will call the `Trigger.run` function again.
+
+We use step "keys" to determine which steps have already been executed. If a step has already been executed, we will skip it and move on to the next step.
+
+## How to use keys
+
+Like we mentioned above, we use step keys to determine which steps have already been executed. They are defined by you inside your `Trigger.run` function, for example when you call `slack.postMessage`:
+
+```ts
+await slack.postMessage("⭐️ New Star", {
+ channelName: "github-stars",
+ text: `@${starredBy} just starred ${repoName}!`,
+});
+```
+
+In this example, the key is the string `"⭐️ New Star"`. This means that if the workflow is interrupted and then resumed, the `slack.postMessage` step will be skipped because it has already been executed.
+
+If you make multiple calls to `slack.postMessage`, you should use different keys for each call. For example:
+
+```ts
+await slack.postMessage("⭐️ New Star", {
+ channelName: "github-stars",
+ text: `@${starredBy} just starred ${repoName}!`,
+});
+
+await slack.postMessage("🚨 Critical Issue", {
+ channelName: "critical-issues",
+ text: `@${assignee} just opened a critical issue in ${repoName}!`,
+});
+```
+
+If you are calling a step multiple times with the same key, it will only be executed once. For example, if you call `slack.postMessage` with the key `"⭐️ New Star"` twice, it will only be executed once.
+
+## How to use keys with loops
+
+If you are using a loop, you should use the loop index as the key. For example:
+
+```ts
+for (let i = 0; i < 10; i++) {
+ await ctx.waitFor(`Wait ${i}`, { seconds: 30 });
+
+ await slack.postMessage(`⭐️ New Star ${i}`, {
+ channelName: "github-stars",
+ text: `@${starredBy} just starred ${repoName}!`,
+ });
+}
+```
+
+## When to use keys
+
+The following functions in Trigger.dev require a `key` parameter:
+
+- Integration actions (e.g. `slack.postMessage`)
+- [delays](/functions/delays)
+- [sendEvent](/functions/send-event)
+- [fetch](/functions/fetch)
+
+[Logging](/functions/logging) does not require a key, as we are currently using the log message as the key.
diff --git a/apps/docs/guides/zod.mdx b/apps/docs/guides/zod.mdx
index 8803c2f59d1..646d3681402 100644
--- a/apps/docs/guides/zod.mdx
+++ b/apps/docs/guides/zod.mdx
@@ -1,7 +1,306 @@
---
-title: "Zod"
+title: "Zod Guide"
sidebarTitle: "Zod"
description: "TypeScript-first schema validation with static type inference"
---
-## Coming soon
+## Intro
+
+Zod is a fantastic utility package by [@colinhacks](https://twitter.com/colinhacks) that allows for defining runtime schema validation and type-safety.
+
+We use it [extensively](https://github.com/search?q=repo%3Atriggerdotdev%2Ftrigger.dev+%22zod%22%3B&type=code) internally at Trigger.dev to ensure we never trigger your workflows with invalid data (and more).
+
+But there are a few places where we ask you to provide us with a Zod schema, for example when defining a [Custom Event Trigger](/triggers/custom-events):
+
+```ts
+import { Trigger, customEvent } from "@trigger.dev/sdk";
+import { slack } from "@trigger.dev/integrations";
+import { z } from "zod";
+
+//this workflow will run when a "user.created" event is sent
+new Trigger({
+ id: "zod",
+ name: "Zod custom event",
+ //this is the custom event subscription
+ on: customEvent({
+ name: "user.created",
+ schema: z.object({
+ name: z.string(),
+ email: z.string(),
+ paidPlan: z.boolean(),
+ }),
+ }),
+ //this function is run when the custom event is received
+ run: async (event, ctx) => {
+ console.log(event); // Has name, email, paidPlan
+ },
+}).listen();
+```
+
+So it will help to know a little about Zod and how to use it. We definitely recommend the well written [Zod README](https://github.com/colinhacks/zod#readme) but we've included a short primer below.
+
+
+ Wherever we require you to pass in a Zod schema, you can always start with
+ `z.any()` which accepts `any` type and then add more strict validations later.
+
+
+## Basic Usage
+
+There are three main steps to using Zod:
+
+1. Define a schema
+
+```ts
+import { z } from "zod";
+
+const mySchema = z.object({
+ name: z.string(),
+ email: z.string(),
+ paidPlan: z.boolean(),
+});
+```
+
+2. Infer TypeScript types from the schema
+
+```ts
+type MySchema = z.infer;
+```
+
+3. Validate data against the schema
+
+```ts
+const data: unknown = {
+ name: "Eric",
+ email: "eric@trigger.dev",
+ paidPlan: true,
+};
+
+const result = mySchema.parse(data);
+```
+
+When using Zod with Trigger.dev, you'll only really need to do the first step, and by passing it to us (through the `schema` property of the `customEvent` function), we'll do the second and third steps for you.
+
+## Defining Schemas
+
+### Primitives
+
+Zod schemas are a way to define the shape of an object. They can be as simple as a single type, or as complex as a nested object.
+
+```ts
+// Primitives
+z.string();
+z.number();
+z.boolean();
+z.date();
+z.undefined();
+z.null();
+```
+
+Any schema can be marked as optional, which means the schema can be `undefined` or `null`:
+
+```ts
+z.string().optional();
+```
+
+Schemas can also be marked optional by providing a default value:
+
+```ts
+const optionalString = z.string().default("default value");
+
+const value = optionalString.parse(undefined); // value === "default value"
+```
+
+If you need to allow a value to be `null`, you can use `nullable()`:
+
+```ts
+const nullableString = z.string().nullable();
+
+const value = nullableString.parse(null);
+```
+
+You can also use Zod to coerce primites into other types. For example, you can coerce a string into a number:
+
+```ts
+const numberString = z.coerce.number();
+
+const value = numberString.parse("123"); // value === 123
+```
+
+The following primitives are supported:
+
+```ts
+z.coerce.string();
+z.coerce.number();
+z.coerce.boolean();
+z.coerce.bigint();
+z.coerce.date();
+```
+
+Coercing dates are especially useful when you are receiving a `string` from an API and want to convert it to a JavaScript `Date` object:
+
+```ts
+const date = z.coerce.date();
+
+const value = date.parse("2021-01-01T00:00:00.000Z"); // value === Date object
+```
+
+### Objects
+
+Object schemas are the most common type of schema. They allow you to define the shape of an object, and the types of each property.
+
+```ts
+const mySchema = z.object({
+ name: z.string(),
+ email: z.string(),
+ paidPlan: z.boolean(),
+});
+```
+
+All properties are required by default, although you can make them all optional using `partial()`:
+
+```ts
+const mySchema = z
+ .object({
+ name: z.string(),
+ email: z.string(),
+ paidPlan: z.boolean(),
+ })
+ .partial();
+```
+
+You can also make individual properties optional:
+
+```ts
+const mySchema = z.object({
+ name: z.string(),
+ email: z.string(),
+ paidPlan: z.boolean().optional(),
+});
+```
+
+By default an object schema will strip out any extra properties that are not defined in the schema. You can disable this behavior using `passthrough()`:
+
+```ts
+const mySchema = z.object({
+ name: z.string(),
+});
+
+mySchema.parse({ name: "Eric", email: "eric@trigger.dev" }); // { name: "Eric" }
+mySchema.passthrough().parse({ name: "Eric", email: "eric@trigger.dev" }); // { name: "Eric", email: "eric@trigger.dev" }
+```
+
+Or you can use `strict()` to make the schema throw an error if there are any extra properties:
+
+```ts
+const mySchema = z
+ .object({
+ name: z.string(),
+ })
+ .strict();
+
+mySchema.parse({ name: "Eric", email: "eric@trigger.dev" }); // throws error
+```
+
+Zod includes a few useful object schema utilities to help with reusing schemas, `extends()` and `merge()`:
+
+```ts
+const baseSchema = z.object({
+ name: z.string(),
+});
+
+const extendedSchema = baseSchema.extend({
+ email: z.string(),
+});
+
+const mergedSchema = baseSchema.merge(
+ z.object({
+ email: z.string(),
+ })
+);
+```
+
+You can also use `pick()` and `omit()` to create a new schema that only includes or excludes certain properties:
+
+```ts
+const mySchema = z.object({
+ name: z.string(),
+ email: z.string(),
+ paidPlan: z.boolean(),
+});
+
+const pickedSchema = mySchema.pick({ name: true, email: true });
+const omittedSchema = mySchema.omit({ paidPlan: true });
+```
+
+### Arrays
+
+You can specify the schema of an array using `z.array()`:
+
+```ts
+z.array(z.string()); // string[]
+z.array(z.number()); // number[]
+z.array(z.object({ name: z.string() })); // Array<{ name: string }>
+```
+
+You can also specify the type of array that has a fixed number of elements using `z.tuple()`:
+
+```ts
+z.tuple([z.string(), z.number(), z.boolean()]); // [string, number, boolean]
+```
+
+### Unions
+
+You can specify a union of schemas using `z.union()`:
+
+```ts
+z.union([z.string(), z.number(), z.boolean()]); // string | number | boolean
+```
+
+Discriminating unions are also supported, and especially useful when paired with type narrowing:
+
+```ts
+const mySchema = z.discriminatingUnion("type", [
+ z.object({
+ type: z.literal("a"),
+ data: z.string(),
+ }),
+ z.object({
+ type: z.literal("b"),
+ data: z.number(),
+ }),
+]);
+
+const value = mySchema.parse({ type: "a", data: "hello" });
+
+if (type.a) {
+ // value is { type: "a", data: string }
+} else if (type.b) {
+ // value is { type: "b", data: number }
+}
+```
+
+### Records
+
+You can specify a record of schemas using `z.record()`, useful for when you have a map of values but don't care about the keys:
+
+```ts
+z.record(z.string()); // Record
+z.record(z.number()); // Record
+```
+
+### JSON type
+
+If you want to accept any valid JSON value, you can use the following schema:
+
+```ts
+const literalSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);
+type Literal = z.infer;
+type Json = Literal | { [key: string]: Json } | Json[];
+const jsonSchema: z.ZodType = z.lazy(() =>
+ z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)])
+);
+
+jsonSchema.parse(data);
+```
+
+Hat tip to [ggoodman](https://github.com/ggoodman) for this one.
diff --git a/apps/docs/images/api-keys.png b/apps/docs/images/api-keys.png
index 800b2e2885b..6090e768f24 100644
Binary files a/apps/docs/images/api-keys.png and b/apps/docs/images/api-keys.png differ
diff --git a/apps/docs/images/docs-background.png b/apps/docs/images/docs-background.png
new file mode 100644
index 00000000000..495c0e24907
Binary files /dev/null and b/apps/docs/images/docs-background.png differ
diff --git a/apps/docs/images/favicon.png b/apps/docs/images/favicon.png
index f612987cf0e..7540b1ea4d4 100644
Binary files a/apps/docs/images/favicon.png and b/apps/docs/images/favicon.png differ
diff --git a/apps/docs/images/log-all.png b/apps/docs/images/log-all.png
new file mode 100644
index 00000000000..295da552530
Binary files /dev/null and b/apps/docs/images/log-all.png differ
diff --git a/apps/docs/images/log-info.png b/apps/docs/images/log-info.png
new file mode 100644
index 00000000000..457f766fe9a
Binary files /dev/null and b/apps/docs/images/log-info.png differ
diff --git a/apps/docs/images/run-failed.png b/apps/docs/images/run-failed.png
index 2790d35bea4..0ae981fd299 100644
Binary files a/apps/docs/images/run-failed.png and b/apps/docs/images/run-failed.png differ
diff --git a/apps/docs/images/run-succeeded.png b/apps/docs/images/run-succeeded.png
index e0c508473df..bddbaec63a1 100644
Binary files a/apps/docs/images/run-succeeded.png and b/apps/docs/images/run-succeeded.png differ
diff --git a/apps/docs/images/run-test.png b/apps/docs/images/run-test.png
index c080da4ceb3..080efd186a5 100644
Binary files a/apps/docs/images/run-test.png and b/apps/docs/images/run-test.png differ
diff --git a/apps/docs/images/secure-string.png b/apps/docs/images/secure-string.png
index b610c0539ec..a17414a5dad 100644
Binary files a/apps/docs/images/secure-string.png and b/apps/docs/images/secure-string.png differ
diff --git a/apps/docs/images/workflow-demo.gif b/apps/docs/images/workflow-demo.gif
new file mode 100644
index 00000000000..aa2108b372d
Binary files /dev/null and b/apps/docs/images/workflow-demo.gif differ
diff --git a/apps/docs/images/workflow.png b/apps/docs/images/workflow.png
index c58a5b7a82c..d12eba024a2 100644
Binary files a/apps/docs/images/workflow.png and b/apps/docs/images/workflow.png differ
diff --git a/apps/docs/integrations/apis/github/events/issue-comments.mdx b/apps/docs/integrations/apis/github/events/issue-comments.mdx
new file mode 100644
index 00000000000..47c44effe7b
--- /dev/null
+++ b/apps/docs/integrations/apis/github/events/issue-comments.mdx
@@ -0,0 +1,376 @@
+---
+title: "Issue Comment Event"
+sidebarTitle: "Issue Comments"
+description: "Trigger a workflow whenever an issue_comment action is performed in a GitHub repository."
+---
+
+## Usage
+
+```ts
+import { github } from "@trigger.dev/integrations";
+
+new Trigger({
+ id: "demo",
+ on: github.events.issueCommentEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {},
+}).listen();
+```
+
+## Params
+
+
+ The full path to the repository, including the organization
+
+
+## Event
+
+
+ The issue_comment action, which can be either created, deleted, or edited.
+
+
+
+ The comment object.
+
+
+
+ The issue object.
+
+
+
+ A repository on GitHub.
+
+
+
+ The GitHub user object who performed the action.
+
+
+
+ The organization object the repository belongs to.
+
+
+## Example Workflows
+
+
+
+```typescript Notify Slack on new Issue comment
+new Trigger({
+ id: "github-to-slack",
+ name: "Notify Slack on new Issue comment",
+ on: github.events.issueCommentEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {
+ if (event.action === "created") {
+ await slack.postMessage("New Comment", {
+ channelName: "github-issues",
+ text: `New comment on issue ${event.issue.title} by ${event.sender.login}: ${event.comment.html_url}`,
+ });
+ }
+ },
+}).listen();
+```
+
+
+
+## Example Event payload
+
+```json
+{
+ "issue": {
+ "id": 1548436712,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1",
+ "body": "Changed the body text once",
+ "user": {
+ "id": 10635986,
+ "url": "https://api.github.com/users/matt-aitken",
+ "type": "User",
+ "login": "matt-aitken",
+ "node_id": "MDQ6VXNlcjEwNjM1OTg2",
+ "html_url": "https://github.com/matt-aitken",
+ "gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/matt-aitken/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
+ "events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/matt-aitken/followers",
+ "following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/matt-aitken/orgs",
+ "subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
+ "received_events_url": "https://api.github.com/users/matt-aitken/received_events"
+ },
+ "state": "open",
+ "title": "Changed test issue title",
+ "labels": [
+ {
+ "id": 5003355458,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels/documentation",
+ "name": "documentation",
+ "color": "0075ca",
+ "default": true,
+ "node_id": "LA_kwDOIxVdCc8AAAABKjklQg",
+ "description": "Improvements or additions to documentation"
+ },
+ {
+ "id": 5003355474,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels/enhancement",
+ "name": "enhancement",
+ "color": "a2eeef",
+ "default": true,
+ "node_id": "LA_kwDOIxVdCc8AAAABKjklUg",
+ "description": "New feature or request"
+ }
+ ],
+ "locked": false,
+ "number": 1,
+ "node_id": "I_kwDOIxVdCc5cS0To",
+ "assignee": null,
+ "comments": 6,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples/issues/1",
+ "assignees": [],
+ "closed_at": null,
+ "milestone": {
+ "id": 8941544,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones/1",
+ "state": "open",
+ "title": "Test milestone",
+ "due_on": "2023-01-20T08:00:00Z",
+ "number": 1,
+ "creator": {
+ "id": 10635986,
+ "url": "https://api.github.com/users/matt-aitken",
+ "type": "User",
+ "login": "matt-aitken",
+ "node_id": "MDQ6VXNlcjEwNjM1OTg2",
+ "html_url": "https://github.com/matt-aitken",
+ "gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/matt-aitken/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
+ "events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/matt-aitken/followers",
+ "following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/matt-aitken/orgs",
+ "subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
+ "received_events_url": "https://api.github.com/users/matt-aitken/received_events"
+ },
+ "node_id": "MI_kwDOIxVdCc4AiG_o",
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples/milestone/1",
+ "closed_at": null,
+ "created_at": "2023-01-19T03:02:37Z",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones/1/labels",
+ "updated_at": "2023-01-19T17:21:25Z",
+ "description": "",
+ "open_issues": 1,
+ "closed_issues": 0
+ },
+ "reactions": {
+ "+1": 0,
+ "-1": 0,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/reactions",
+ "eyes": 0,
+ "heart": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "rocket": 0,
+ "confused": 0,
+ "total_count": 0
+ },
+ "created_at": "2023-01-19T02:50:49Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/events",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/labels{/name}",
+ "updated_at": "2023-01-24T04:18:52Z",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/comments",
+ "state_reason": "reopened",
+ "timeline_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1/timeline",
+ "repository_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
+ "active_lock_reason": null,
+ "author_association": "MEMBER",
+ "performed_via_github_app": null
+ },
+ "action": "created",
+ "sender": {
+ "id": 534,
+ "url": "https://api.github.com/users/ericallam",
+ "type": "User",
+ "login": "ericallam",
+ "node_id": "MDQ6VXNlcjUzNA==",
+ "html_url": "https://github.com/ericallam",
+ "gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/ericallam/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
+ "events_url": "https://api.github.com/users/ericallam/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/ericallam/followers",
+ "following_url": "https://api.github.com/users/ericallam/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/ericallam/orgs",
+ "subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
+ "received_events_url": "https://api.github.com/users/ericallam/received_events"
+ },
+ "comment": {
+ "id": 1401375866,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments/1401375866",
+ "body": "New comment",
+ "user": {
+ "id": 534,
+ "url": "https://api.github.com/users/ericallam",
+ "type": "User",
+ "login": "ericallam",
+ "node_id": "MDQ6VXNlcjUzNA==",
+ "html_url": "https://github.com/ericallam",
+ "gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/ericallam/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
+ "events_url": "https://api.github.com/users/ericallam/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/ericallam/followers",
+ "following_url": "https://api.github.com/users/ericallam/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/ericallam/orgs",
+ "subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
+ "received_events_url": "https://api.github.com/users/ericallam/received_events"
+ },
+ "node_id": "IC_kwDOIxVdCc5Th0x6",
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples/issues/1#issuecomment-1401375866",
+ "issue_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/1",
+ "reactions": {
+ "+1": 0,
+ "-1": 0,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments/1401375866/reactions",
+ "eyes": 0,
+ "heart": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "rocket": 0,
+ "confused": 0,
+ "total_count": 0
+ },
+ "created_at": "2023-01-24T04:18:52Z",
+ "updated_at": "2023-01-24T04:18:52Z",
+ "author_association": "MEMBER",
+ "performed_via_github_app": null
+ },
+ "repository": {
+ "id": 588602633,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
+ "fork": false,
+ "name": "trigger.dev-examples",
+ "size": 161,
+ "forks": 0,
+ "owner": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "topics": [],
+ "git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
+ "license": null,
+ "node_id": "R_kgDOIxVdCQ",
+ "private": false,
+ "ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
+ "svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "archived": false,
+ "disabled": false,
+ "has_wiki": false,
+ "homepage": null,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
+ "language": "TypeScript",
+ "tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
+ "watchers": 1,
+ "blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
+ "clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
+ "forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
+ "full_name": "triggerdotdev/trigger.dev-examples",
+ "has_pages": false,
+ "hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
+ "pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
+ "pushed_at": "2023-01-23T19:06:36Z",
+ "teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
+ "trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
+ "created_at": "2023-01-13T14:26:45Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
+ "has_issues": true,
+ "issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
+ "merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
+ "mirror_url": null,
+ "updated_at": "2023-01-23T14:22:40Z",
+ "visibility": "public",
+ "archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
+ "description": "Node.js project with multiple example Trigger.dev workflows",
+ "forks_count": 0,
+ "is_template": false,
+ "open_issues": 2,
+ "branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
+ "contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
+ "git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
+ "has_projects": true,
+ "releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
+ "allow_forking": true,
+ "assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
+ "downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
+ "has_downloads": false,
+ "languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
+ "default_branch": "main",
+ "milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
+ "stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
+ "watchers_count": 1,
+ "deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
+ "git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
+ "has_discussions": false,
+ "subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
+ "contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
+ "issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
+ "stargazers_count": 1,
+ "subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
+ "collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
+ "issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
+ "notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
+ "open_issues_count": 2,
+ "web_commit_signoff_required": false
+ },
+ "organization": {
+ "id": 95297378,
+ "url": "https://api.github.com/orgs/triggerdotdev",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
+ "repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/orgs/triggerdotdev/events",
+ "issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
+ "description": "",
+ "members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
+ "public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
+ }
+}
+```
diff --git a/apps/docs/integrations/apis/github/events/issues.mdx b/apps/docs/integrations/apis/github/events/issues.mdx
new file mode 100644
index 00000000000..d1de2469582
--- /dev/null
+++ b/apps/docs/integrations/apis/github/events/issues.mdx
@@ -0,0 +1,428 @@
+---
+title: "Issue Event"
+sidebarTitle: "Issues"
+description: "Trigger a workflow whenever an issue action is performed in a GitHub repository."
+---
+
+## Usage
+
+```ts
+import { github } from "@trigger.dev/integrations";
+
+new Trigger({
+ id: "demo",
+ on: github.events.issueEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {},
+}).listen();
+```
+
+## Params
+
+
+ The full path to the repository, including the organization
+
+
+## Event
+
+
+ The issue action, can be one of assigned, closed, deleted, edited, labeled,
+ unlabeled, locked, opened, pinned, reopened, transferred, unlocked, or
+ unassigned.
+
+
+
+ The issue object.
+
+
+
+ A repository on GitHub.
+
+
+
+ The GitHub user object who performed the action.
+
+
+
+ The organization object the repository belongs to.
+
+
+## Additional event fields
+
+### transferred issues
+
+
+
+
+ The new issue object.
+
+
+
+ The new issue repository.
+
+
+
+
+
+### edited issues
+
+
+
+
+
+
+ The previous body text.
+
+
+
+
+
+
+
+ The previous title text.
+
+
+
+
+
+
+
+### labeled/unlabeled issues
+
+
+ The label object.
+
+
+### assigned/unassigned issues
+
+
+ The assignee object.
+
+
+### opened issues
+
+
+
+
+ The old issue object.
+
+
+
+ The old issue repository.
+
+
+
+
+
+## Example Workflows
+
+
+
+```typescript Notify Slack on Critical Issue
+new Trigger({
+ id: "github-to-slack",
+ name: "Notify of critical issues",
+ on: github.events.issueEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {
+ if (event.action === "labeled") {
+ if (event.label?.name === "critical") {
+ await slack.postMessage("send-to-slack", {
+ channelName: "serious-issues",
+ text: `Critical issue: ${event.issue.title} was labeled ${event.label.name}`,
+ });
+ }
+ }
+
+ return event;
+ },
+}).listen();
+```
+
+
+
+## Example Event payload
+
+```json
+{
+ "issue": {
+ "id": 1514714160,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2",
+ "body": "This is the body text\r\n`const name = \"Matt\"`",
+ "user": {
+ "id": 10635986,
+ "url": "https://api.github.com/users/matt-aitken",
+ "type": "User",
+ "login": "matt-aitken",
+ "node_id": "MDQ6VXNlcjEwNjM1OTg2",
+ "html_url": "https://github.com/matt-aitken",
+ "gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/matt-aitken/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
+ "events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/matt-aitken/followers",
+ "following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/matt-aitken/orgs",
+ "subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
+ "received_events_url": "https://api.github.com/users/matt-aitken/received_events"
+ },
+ "state": "open",
+ "title": "Test issue for webhook",
+ "labels": [
+ {
+ "id": 4858587614,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev/labels/documentation",
+ "name": "documentation",
+ "color": "0075ca",
+ "default": true,
+ "node_id": "LA_kwDOIiC6Ac8AAAABIZgp3g",
+ "description": "Improvements or additions to documentation"
+ },
+ {
+ "id": 5009913913,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev/labels/critical",
+ "name": "critical",
+ "color": "e99695",
+ "default": false,
+ "node_id": "LA_kwDOIiC6Ac8AAAABKp04OQ",
+ "description": ""
+ }
+ ],
+ "locked": false,
+ "number": 2,
+ "node_id": "I_kwDOIiC6Ac5aSLQw",
+ "assignee": {
+ "id": 10635986,
+ "url": "https://api.github.com/users/matt-aitken",
+ "type": "User",
+ "login": "matt-aitken",
+ "node_id": "MDQ6VXNlcjEwNjM1OTg2",
+ "html_url": "https://github.com/matt-aitken",
+ "gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/matt-aitken/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
+ "events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/matt-aitken/followers",
+ "following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/matt-aitken/orgs",
+ "subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
+ "received_events_url": "https://api.github.com/users/matt-aitken/received_events"
+ },
+ "comments": 2,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev/issues/2",
+ "assignees": [
+ {
+ "id": 10635986,
+ "url": "https://api.github.com/users/matt-aitken",
+ "type": "User",
+ "login": "matt-aitken",
+ "node_id": "MDQ6VXNlcjEwNjM1OTg2",
+ "html_url": "https://github.com/matt-aitken",
+ "gists_url": "https://api.github.com/users/matt-aitken/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/matt-aitken/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10635986?v=4",
+ "events_url": "https://api.github.com/users/matt-aitken/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/matt-aitken/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/matt-aitken/followers",
+ "following_url": "https://api.github.com/users/matt-aitken/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/matt-aitken/orgs",
+ "subscriptions_url": "https://api.github.com/users/matt-aitken/subscriptions",
+ "received_events_url": "https://api.github.com/users/matt-aitken/received_events"
+ }
+ ],
+ "closed_at": null,
+ "milestone": null,
+ "reactions": {
+ "+1": 0,
+ "-1": 0,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/reactions",
+ "eyes": 0,
+ "heart": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "rocket": 0,
+ "confused": 0,
+ "total_count": 0
+ },
+ "created_at": "2022-12-30T18:34:01Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/events",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/labels{/name}",
+ "updated_at": "2023-01-15T20:18:14Z",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/comments",
+ "state_reason": null,
+ "timeline_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/2/timeline",
+ "repository_url": "https://api.github.com/repos/triggerdotdev/trigger.dev",
+ "active_lock_reason": null,
+ "author_association": "MEMBER",
+ "performed_via_github_app": null
+ },
+ "label": {
+ "id": 5009913913,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev/labels/critical",
+ "name": "critical",
+ "color": "e99695",
+ "default": false,
+ "node_id": "LA_kwDOIiC6Ac8AAAABKp04OQ",
+ "description": ""
+ },
+ "action": "labeled",
+ "sender": {
+ "id": 7555566,
+ "url": "https://api.github.com/users/samejr",
+ "type": "User",
+ "login": "samejr",
+ "node_id": "MDQ6VXNlcjc1NTU1NjY=",
+ "html_url": "https://github.com/samejr",
+ "gists_url": "https://api.github.com/users/samejr/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/samejr/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7555566?v=4",
+ "events_url": "https://api.github.com/users/samejr/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/samejr/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/samejr/followers",
+ "following_url": "https://api.github.com/users/samejr/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/samejr/orgs",
+ "subscriptions_url": "https://api.github.com/users/samejr/subscriptions",
+ "received_events_url": "https://api.github.com/users/samejr/received_events"
+ },
+ "repository": {
+ "id": 572570113,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev",
+ "fork": false,
+ "name": "trigger.dev",
+ "size": 14727,
+ "forks": 2,
+ "owner": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "topics": [
+ "apis",
+ "automation",
+ "event-driven",
+ "events",
+ "orchestration",
+ "scheduler",
+ "workflows"
+ ],
+ "git_url": "git://github.com/triggerdotdev/trigger.dev.git",
+ "license": {
+ "key": "apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "name": "Apache License 2.0",
+ "node_id": "MDc6TGljZW5zZTI=",
+ "spdx_id": "Apache-2.0"
+ },
+ "node_id": "R_kgDOIiC6AQ",
+ "private": false,
+ "ssh_url": "git@github.com:triggerdotdev/trigger.dev.git",
+ "svn_url": "https://github.com/triggerdotdev/trigger.dev",
+ "archived": false,
+ "disabled": false,
+ "has_wiki": true,
+ "homepage": "https://trigger.dev",
+ "html_url": "https://github.com/triggerdotdev/trigger.dev",
+ "keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/keys{/key_id}",
+ "language": "TypeScript",
+ "tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/tags",
+ "watchers": 58,
+ "blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/blobs{/sha}",
+ "clone_url": "https://github.com/triggerdotdev/trigger.dev.git",
+ "forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/forks",
+ "full_name": "triggerdotdev/trigger.dev",
+ "has_pages": false,
+ "hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/hooks",
+ "pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/pulls{/number}",
+ "pushed_at": "2023-01-15T19:41:24Z",
+ "teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/teams",
+ "trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/trees{/sha}",
+ "created_at": "2022-11-30T14:59:07Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/events",
+ "has_issues": true,
+ "issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues{/number}",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/labels{/name}",
+ "merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/merges",
+ "mirror_url": null,
+ "updated_at": "2023-01-15T18:49:01Z",
+ "visibility": "public",
+ "archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/{archive_format}{/ref}",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/compare/{base}...{head}",
+ "description": "The developer-first, open source Zapier Alternative. Coming soon. Give us a ⭐️ and we'll let you know",
+ "forks_count": 2,
+ "is_template": false,
+ "open_issues": 2,
+ "branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/branches{/branch}",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/comments{/number}",
+ "contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/contents/{+path}",
+ "git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/tags{/sha}",
+ "has_projects": true,
+ "releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/releases{/id}",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/statuses/{sha}",
+ "allow_forking": true,
+ "assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/assignees{/user}",
+ "downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/downloads",
+ "has_downloads": true,
+ "languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/languages",
+ "default_branch": "main",
+ "milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/milestones{/number}",
+ "stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/stargazers",
+ "watchers_count": 58,
+ "deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/deployments",
+ "git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/git/commits{/sha}",
+ "has_discussions": false,
+ "subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/subscribers",
+ "contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/contributors",
+ "issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/events{/number}",
+ "stargazers_count": 58,
+ "subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/subscription",
+ "collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/collaborators{/collaborator}",
+ "issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/issues/comments{/number}",
+ "notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev/notifications{?since,all,participating}",
+ "open_issues_count": 2,
+ "web_commit_signoff_required": false
+ },
+ "organization": {
+ "id": 95297378,
+ "url": "https://api.github.com/orgs/triggerdotdev",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
+ "repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/orgs/triggerdotdev/events",
+ "issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
+ "description": "",
+ "members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
+ "public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
+ }
+}
+```
diff --git a/apps/docs/integrations/apis/github/events/new-star.mdx b/apps/docs/integrations/apis/github/events/new-star.mdx
index 18ce49d0f53..db772559a8b 100644
--- a/apps/docs/integrations/apis/github/events/new-star.mdx
+++ b/apps/docs/integrations/apis/github/events/new-star.mdx
@@ -4,9 +4,19 @@ sidebarTitle: "New Star"
description: "Trigger a workflow whenever a user star's the specified GitHub repository."
---
-# New Star
+## Usage
-Trigger a workflow whenever a user star's the specified GitHub repository.
+```ts
+import { github } from "@trigger.dev/integrations";
+
+new Trigger({
+ id: "demo",
+ on: github.events.newStarEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {},
+}).listen();
+```
## Params
@@ -40,17 +50,6 @@ Trigger a workflow whenever a user star's the specified GitHub repository.
-```typescript Basic
-new Trigger({
- id: "new-star",
- name: "On New Star",
- on: github.events.newStarEvent({
- repo: "triggerdotdev/trigger.dev",
- }),
- run: async (event, ctx) => {},
-}).listen();
-```
-
```typescript Notify Slack on New Star
import { slack } from "@trigger.dev/integrations";
diff --git a/apps/docs/integrations/apis/github/events/pull-request-comments.mdx b/apps/docs/integrations/apis/github/events/pull-request-comments.mdx
new file mode 100644
index 00000000000..c76a961e2f1
--- /dev/null
+++ b/apps/docs/integrations/apis/github/events/pull-request-comments.mdx
@@ -0,0 +1,97 @@
+---
+title: "PR Review Comment Event"
+sidebarTitle: "PR Review Comments"
+description: "Trigger a workflow whenever an pull_request_review_comment action is performed in a GitHub repository."
+---
+
+
+ If you would like to trigger a workflow when a comment is made on a PR, use
+ the [issueCommentEvent](/integrations/apis/github/events/issue-comments)
+ instead
+
+
+## Usage
+
+```ts
+import { github } from "@trigger.dev/integrations";
+
+new Trigger({
+ id: "demo",
+ on: github.events.pullRequestCommentEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {},
+}).listen();
+```
+
+## Params
+
+
+ The full path to the repository, including the organization
+
+
+## Event
+
+
+ The pull_request action, can be one of: `created`, `edited`, `deleted`.
+
+
+
+ The pull request review comment object.
+
+
+
+ The pull request object.
+
+
+
+ A repository on GitHub.
+
+
+
+ The GitHub user object who performed the action.
+
+
+
+ The organization object the repository belongs to.
+
+
+## Additional event fields
+
+### edited PR Review Comment
+
+
+
+
+
+
+ The previous body text.
+
+
+
+
+
+
+## Example Workflows
+
+
+
+```typescript Notify Slack on new PR
+new Trigger({
+ id: "new-pr",
+ name: "Notify Slack on new PR Review Comment",
+ on: github.events.pullRequestCommentEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {
+ if (event.action === "created") {
+ await slack.postMessage("New PR comment", {
+ channelName: "github-prs",
+ text: `New PR comment by ${event.sender.login} on PR ${event.pull_request.title} (${event.pull_request.html_url})`,
+ });
+ }
+ },
+}).listen();
+```
+
+
diff --git a/apps/docs/integrations/apis/github/events/pull-request-reviews.mdx b/apps/docs/integrations/apis/github/events/pull-request-reviews.mdx
new file mode 100644
index 00000000000..4f370b9e785
--- /dev/null
+++ b/apps/docs/integrations/apis/github/events/pull-request-reviews.mdx
@@ -0,0 +1,625 @@
+---
+title: "PR Review Event"
+sidebarTitle: "PR Reviews"
+description: "Trigger a workflow whenever an pull_request_review action is performed in a GitHub repository."
+---
+
+## Usage
+
+```ts
+import { github } from "@trigger.dev/integrations";
+
+new Trigger({
+ id: "demo",
+ on: github.events.pullRequestReviewEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {},
+}).listen();
+```
+
+## Params
+
+
+ The full path to the repository, including the organization
+
+
+## Event
+
+
+ The pull_request_review action, can be one of: `submitted`, `edited`,
+ `dismissed`.
+
+
+
+ The pull request review object.
+
+
+
+ The pull request object.
+
+
+
+ A repository on GitHub.
+
+
+
+ The GitHub user object who performed the action.
+
+
+
+ The organization object the repository belongs to.
+
+
+## Additional event fields
+
+### edited PR Review
+
+
+
+
+
+
+ The previous body text.
+
+
+
+
+
+
+## Example Workflows
+
+
+
+```typescript Notify Slack on new PR Review
+new Trigger({
+ id: "new-pr",
+ name: "Notify Slack on new PR Review",
+ on: github.events.pullRequestReviewEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {
+ if (event.action === "submitted") {
+ await slack.postMessage("New PR Review", {
+ channelName: "github-prs",
+ text: `New PR Review by ${event.sender.login} on PR ${event.pull_request.title} (${event.pull_request.html_url})`,
+ });
+ }
+ },
+}).listen();
+```
+
+
+
+## Example Event payload
+
+```json
+{
+ "action": "submitted",
+ "review": {
+ "id": 1266763458,
+ "body": "This is a PR review comment?",
+ "user": {
+ "id": 534,
+ "url": "https://api.github.com/users/ericallam",
+ "type": "User",
+ "login": "ericallam",
+ "node_id": "MDQ6VXNlcjUzNA==",
+ "html_url": "https://github.com/ericallam",
+ "gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/ericallam/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
+ "events_url": "https://api.github.com/users/ericallam/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/ericallam/followers",
+ "following_url": "https://api.github.com/users/ericallam/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/ericallam/orgs",
+ "subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
+ "received_events_url": "https://api.github.com/users/ericallam/received_events"
+ },
+ "state": "commented",
+ "_links": {
+ "html": {
+ "href": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4#pullrequestreview-1266763458"
+ },
+ "pull_request": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4"
+ }
+ },
+ "node_id": "PRR_kwDOIxVdCc5LgUbC",
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4#pullrequestreview-1266763458",
+ "commit_id": "efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
+ "submitted_at": "2023-01-24T04:24:58Z",
+ "pull_request_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4",
+ "author_association": "MEMBER"
+ },
+ "sender": {
+ "id": 534,
+ "url": "https://api.github.com/users/ericallam",
+ "type": "User",
+ "login": "ericallam",
+ "node_id": "MDQ6VXNlcjUzNA==",
+ "html_url": "https://github.com/ericallam",
+ "gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/ericallam/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
+ "events_url": "https://api.github.com/users/ericallam/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/ericallam/followers",
+ "following_url": "https://api.github.com/users/ericallam/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/ericallam/orgs",
+ "subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
+ "received_events_url": "https://api.github.com/users/ericallam/received_events"
+ },
+ "repository": {
+ "id": 588602633,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
+ "fork": false,
+ "name": "trigger.dev-examples",
+ "size": 161,
+ "forks": 0,
+ "owner": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "topics": [],
+ "git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
+ "license": null,
+ "node_id": "R_kgDOIxVdCQ",
+ "private": false,
+ "ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
+ "svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "archived": false,
+ "disabled": false,
+ "has_wiki": false,
+ "homepage": null,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
+ "language": "TypeScript",
+ "tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
+ "watchers": 1,
+ "blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
+ "clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
+ "forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
+ "full_name": "triggerdotdev/trigger.dev-examples",
+ "has_pages": false,
+ "hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
+ "pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
+ "pushed_at": "2023-01-24T04:20:52Z",
+ "teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
+ "trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
+ "created_at": "2023-01-13T14:26:45Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
+ "has_issues": true,
+ "issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
+ "merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
+ "mirror_url": null,
+ "updated_at": "2023-01-23T14:22:40Z",
+ "visibility": "public",
+ "archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
+ "description": "Node.js project with multiple example Trigger.dev workflows",
+ "forks_count": 0,
+ "is_template": false,
+ "open_issues": 3,
+ "branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
+ "contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
+ "git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
+ "has_projects": true,
+ "releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
+ "allow_forking": true,
+ "assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
+ "downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
+ "has_downloads": false,
+ "languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
+ "default_branch": "main",
+ "milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
+ "stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
+ "watchers_count": 1,
+ "deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
+ "git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
+ "has_discussions": false,
+ "subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
+ "contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
+ "issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
+ "stargazers_count": 1,
+ "subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
+ "collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
+ "issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
+ "notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
+ "open_issues_count": 3,
+ "web_commit_signoff_required": false
+ },
+ "organization": {
+ "id": 95297378,
+ "url": "https://api.github.com/orgs/triggerdotdev",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
+ "repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/orgs/triggerdotdev/events",
+ "issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
+ "description": "",
+ "members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
+ "public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
+ },
+ "pull_request": {
+ "id": 1214500311,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4",
+ "base": {
+ "ref": "main",
+ "sha": "e7c0680e23fcd3e52d35ddfbb4076112c640d9fa",
+ "repo": {
+ "id": 588602633,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
+ "fork": false,
+ "name": "trigger.dev-examples",
+ "size": 161,
+ "forks": 0,
+ "owner": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "topics": [],
+ "git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
+ "license": null,
+ "node_id": "R_kgDOIxVdCQ",
+ "private": false,
+ "ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
+ "svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "archived": false,
+ "disabled": false,
+ "has_wiki": false,
+ "homepage": null,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
+ "language": "TypeScript",
+ "tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
+ "watchers": 1,
+ "blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
+ "clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
+ "forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
+ "full_name": "triggerdotdev/trigger.dev-examples",
+ "has_pages": false,
+ "hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
+ "pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
+ "pushed_at": "2023-01-24T04:20:52Z",
+ "teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
+ "trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
+ "created_at": "2023-01-13T14:26:45Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
+ "has_issues": true,
+ "issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
+ "merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
+ "mirror_url": null,
+ "updated_at": "2023-01-23T14:22:40Z",
+ "visibility": "public",
+ "archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
+ "description": "Node.js project with multiple example Trigger.dev workflows",
+ "forks_count": 0,
+ "is_template": false,
+ "open_issues": 3,
+ "branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
+ "contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
+ "git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
+ "has_projects": true,
+ "releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
+ "allow_forking": true,
+ "assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
+ "downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
+ "has_downloads": false,
+ "languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
+ "default_branch": "main",
+ "milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
+ "stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
+ "watchers_count": 1,
+ "deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
+ "git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
+ "has_discussions": false,
+ "subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
+ "allow_auto_merge": false,
+ "contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
+ "issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
+ "stargazers_count": 1,
+ "subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
+ "collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
+ "issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
+ "notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
+ "open_issues_count": 3,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "allow_squash_merge": true,
+ "merge_commit_title": "MERGE_MESSAGE",
+ "allow_update_branch": false,
+ "merge_commit_message": "PR_TITLE",
+ "delete_branch_on_merge": false,
+ "squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
+ "squash_merge_commit_message": "COMMIT_MESSAGES",
+ "web_commit_signoff_required": false,
+ "use_squash_pr_title_as_default": false
+ },
+ "user": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "label": "triggerdotdev:main"
+ },
+ "body": null,
+ "head": {
+ "ref": "resend",
+ "sha": "efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
+ "repo": {
+ "id": 588602633,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
+ "fork": false,
+ "name": "trigger.dev-examples",
+ "size": 161,
+ "forks": 0,
+ "owner": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "topics": [],
+ "git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
+ "license": null,
+ "node_id": "R_kgDOIxVdCQ",
+ "private": false,
+ "ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
+ "svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "archived": false,
+ "disabled": false,
+ "has_wiki": false,
+ "homepage": null,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
+ "language": "TypeScript",
+ "tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
+ "watchers": 1,
+ "blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
+ "clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
+ "forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
+ "full_name": "triggerdotdev/trigger.dev-examples",
+ "has_pages": false,
+ "hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
+ "pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
+ "pushed_at": "2023-01-24T04:20:52Z",
+ "teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
+ "trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
+ "created_at": "2023-01-13T14:26:45Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
+ "has_issues": true,
+ "issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
+ "merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
+ "mirror_url": null,
+ "updated_at": "2023-01-23T14:22:40Z",
+ "visibility": "public",
+ "archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
+ "description": "Node.js project with multiple example Trigger.dev workflows",
+ "forks_count": 0,
+ "is_template": false,
+ "open_issues": 3,
+ "branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
+ "contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
+ "git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
+ "has_projects": true,
+ "releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
+ "allow_forking": true,
+ "assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
+ "downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
+ "has_downloads": false,
+ "languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
+ "default_branch": "main",
+ "milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
+ "stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
+ "watchers_count": 1,
+ "deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
+ "git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
+ "has_discussions": false,
+ "subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
+ "allow_auto_merge": false,
+ "contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
+ "issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
+ "stargazers_count": 1,
+ "subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
+ "collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
+ "issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
+ "notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
+ "open_issues_count": 3,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "allow_squash_merge": true,
+ "merge_commit_title": "MERGE_MESSAGE",
+ "allow_update_branch": false,
+ "merge_commit_message": "PR_TITLE",
+ "delete_branch_on_merge": false,
+ "squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
+ "squash_merge_commit_message": "COMMIT_MESSAGES",
+ "web_commit_signoff_required": false,
+ "use_squash_pr_title_as_default": false
+ },
+ "user": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "label": "triggerdotdev:resend"
+ },
+ "user": {
+ "id": 534,
+ "url": "https://api.github.com/users/ericallam",
+ "type": "User",
+ "login": "ericallam",
+ "node_id": "MDQ6VXNlcjUzNA==",
+ "html_url": "https://github.com/ericallam",
+ "gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/ericallam/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
+ "events_url": "https://api.github.com/users/ericallam/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/ericallam/followers",
+ "following_url": "https://api.github.com/users/ericallam/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/ericallam/orgs",
+ "subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
+ "received_events_url": "https://api.github.com/users/ericallam/received_events"
+ },
+ "draft": false,
+ "state": "open",
+ "title": "Example PR",
+ "_links": {
+ "html": {
+ "href": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4"
+ },
+ "self": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4"
+ },
+ "issue": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4"
+ },
+ "commits": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/commits"
+ },
+ "comments": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4/comments"
+ },
+ "statuses": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07"
+ },
+ "review_comment": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/comments{/number}"
+ },
+ "review_comments": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/comments"
+ }
+ },
+ "labels": [],
+ "locked": false,
+ "number": 4,
+ "node_id": "PR_kwDOIxVdCc5IY83X",
+ "assignee": null,
+ "diff_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4.diff",
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4",
+ "assignees": [],
+ "closed_at": null,
+ "issue_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4",
+ "merged_at": null,
+ "milestone": null,
+ "patch_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4.patch",
+ "auto_merge": null,
+ "created_at": "2023-01-24T04:20:51Z",
+ "updated_at": "2023-01-24T04:24:58Z",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/commits",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4/comments",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
+ "requested_teams": [],
+ "merge_commit_sha": null,
+ "active_lock_reason": null,
+ "author_association": "MEMBER",
+ "review_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/comments{/number}",
+ "requested_reviewers": [],
+ "review_comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/comments"
+ }
+}
+```
diff --git a/apps/docs/integrations/apis/github/events/pull-requests.mdx b/apps/docs/integrations/apis/github/events/pull-requests.mdx
new file mode 100644
index 00000000000..be89fe5a7cb
--- /dev/null
+++ b/apps/docs/integrations/apis/github/events/pull-requests.mdx
@@ -0,0 +1,644 @@
+---
+title: "Pull Request Event"
+sidebarTitle: "Pull Requests"
+description: "Trigger a workflow whenever an pull_request action is performed in a GitHub repository."
+---
+
+## Usage
+
+```ts
+import { github } from "@trigger.dev/integrations";
+
+new Trigger({
+ id: "demo",
+ on: github.events.pullRequestEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {},
+}).listen();
+```
+
+## Params
+
+
+ The full path to the repository, including the organization
+
+
+## Event
+
+
+ The pull_request action, which can one of assigned, unassigned,
+ auto_merge_enabled, auto_merge_disabled, review_requested,
+ review_request_removed, ready_for_review, labeled, unlabeled, opened, edited,
+ closed, reopened, synchronize, ready_for_review, locked, unlocked, or
+ converted_to_draft.
+
+
+
+ The pull request number.
+
+
+
+ The pull request object.
+
+
+
+ A repository on GitHub.
+
+
+
+ The GitHub user object who performed the action.
+
+
+
+ The organization object the repository belongs to.
+
+
+## Additional event fields
+
+### review_requested/review_request_removed PRs
+
+
+ The GitHub user object who was requested to review the PR.
+
+
+
+ The GitHub team object who was requested to review the PR.
+
+
+### labeled/unlabeled PRs
+
+
+ The label object.
+
+
+### assigned/unassigned PRs
+
+
+ The assignee object.
+
+
+### edited PRs
+
+
+
+
+
+
+ The previous body text.
+
+
+
+
+
+
+
+ The previous title text.
+
+
+
+
+
+
+
+ Use `ref.from` to get the previous base branch name.
+
+
+ Use `sha.from` to get the previous base branch SHA.
+
+
+
+
+
+
+
+## Example Workflows
+
+
+
+```typescript Notify Slack on new PR
+new Trigger({
+ id: "new-pr",
+ name: "Notify Slack on new PR",
+ on: github.events.pullRequestEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {
+ if (event.action === "opened") {
+ await slack.postMessage("New PR", {
+ channelName: "github-prs",
+ text: `New PR: ${event.pull_request.html_url}`,
+ });
+ }
+ },
+}).listen();
+```
+
+
+
+## Example Event payload
+
+```json
+{
+ "action": "opened",
+ "number": 4,
+ "sender": {
+ "id": 534,
+ "url": "https://api.github.com/users/ericallam",
+ "type": "User",
+ "login": "ericallam",
+ "node_id": "MDQ6VXNlcjUzNA==",
+ "html_url": "https://github.com/ericallam",
+ "gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/ericallam/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
+ "events_url": "https://api.github.com/users/ericallam/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/ericallam/followers",
+ "following_url": "https://api.github.com/users/ericallam/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/ericallam/orgs",
+ "subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
+ "received_events_url": "https://api.github.com/users/ericallam/received_events"
+ },
+ "repository": {
+ "id": 588602633,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
+ "fork": false,
+ "name": "trigger.dev-examples",
+ "size": 161,
+ "forks": 0,
+ "owner": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "topics": [],
+ "git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
+ "license": null,
+ "node_id": "R_kgDOIxVdCQ",
+ "private": false,
+ "ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
+ "svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "archived": false,
+ "disabled": false,
+ "has_wiki": false,
+ "homepage": null,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
+ "language": "TypeScript",
+ "tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
+ "watchers": 1,
+ "blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
+ "clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
+ "forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
+ "full_name": "triggerdotdev/trigger.dev-examples",
+ "has_pages": false,
+ "hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
+ "pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
+ "pushed_at": "2023-01-24T04:20:52Z",
+ "teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
+ "trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
+ "created_at": "2023-01-13T14:26:45Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
+ "has_issues": true,
+ "issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
+ "merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
+ "mirror_url": null,
+ "updated_at": "2023-01-23T14:22:40Z",
+ "visibility": "public",
+ "archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
+ "description": "Node.js project with multiple example Trigger.dev workflows",
+ "forks_count": 0,
+ "is_template": false,
+ "open_issues": 3,
+ "branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
+ "contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
+ "git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
+ "has_projects": true,
+ "releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
+ "allow_forking": true,
+ "assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
+ "downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
+ "has_downloads": false,
+ "languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
+ "default_branch": "main",
+ "milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
+ "stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
+ "watchers_count": 1,
+ "deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
+ "git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
+ "has_discussions": false,
+ "subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
+ "contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
+ "issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
+ "stargazers_count": 1,
+ "subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
+ "collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
+ "issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
+ "notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
+ "open_issues_count": 3,
+ "web_commit_signoff_required": false
+ },
+ "organization": {
+ "id": 95297378,
+ "url": "https://api.github.com/orgs/triggerdotdev",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
+ "repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/orgs/triggerdotdev/events",
+ "issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
+ "description": "",
+ "members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
+ "public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
+ },
+ "pull_request": {
+ "id": 1214500311,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4",
+ "base": {
+ "ref": "main",
+ "sha": "e7c0680e23fcd3e52d35ddfbb4076112c640d9fa",
+ "repo": {
+ "id": 588602633,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
+ "fork": false,
+ "name": "trigger.dev-examples",
+ "size": 161,
+ "forks": 0,
+ "owner": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "topics": [],
+ "git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
+ "license": null,
+ "node_id": "R_kgDOIxVdCQ",
+ "private": false,
+ "ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
+ "svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "archived": false,
+ "disabled": false,
+ "has_wiki": false,
+ "homepage": null,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
+ "language": "TypeScript",
+ "tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
+ "watchers": 1,
+ "blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
+ "clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
+ "forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
+ "full_name": "triggerdotdev/trigger.dev-examples",
+ "has_pages": false,
+ "hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
+ "pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
+ "pushed_at": "2023-01-24T04:20:52Z",
+ "teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
+ "trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
+ "created_at": "2023-01-13T14:26:45Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
+ "has_issues": true,
+ "issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
+ "merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
+ "mirror_url": null,
+ "updated_at": "2023-01-23T14:22:40Z",
+ "visibility": "public",
+ "archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
+ "description": "Node.js project with multiple example Trigger.dev workflows",
+ "forks_count": 0,
+ "is_template": false,
+ "open_issues": 3,
+ "branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
+ "contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
+ "git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
+ "has_projects": true,
+ "releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
+ "allow_forking": true,
+ "assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
+ "downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
+ "has_downloads": false,
+ "languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
+ "default_branch": "main",
+ "milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
+ "stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
+ "watchers_count": 1,
+ "deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
+ "git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
+ "has_discussions": false,
+ "subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
+ "allow_auto_merge": false,
+ "contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
+ "issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
+ "stargazers_count": 1,
+ "subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
+ "collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
+ "issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
+ "notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
+ "open_issues_count": 3,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "allow_squash_merge": true,
+ "merge_commit_title": "MERGE_MESSAGE",
+ "allow_update_branch": false,
+ "merge_commit_message": "PR_TITLE",
+ "delete_branch_on_merge": false,
+ "squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
+ "squash_merge_commit_message": "COMMIT_MESSAGES",
+ "web_commit_signoff_required": false,
+ "use_squash_pr_title_as_default": false
+ },
+ "user": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "label": "triggerdotdev:main"
+ },
+ "body": null,
+ "head": {
+ "ref": "resend",
+ "sha": "efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
+ "repo": {
+ "id": 588602633,
+ "url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples",
+ "fork": false,
+ "name": "trigger.dev-examples",
+ "size": 161,
+ "forks": 0,
+ "owner": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "topics": [],
+ "git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
+ "license": null,
+ "node_id": "R_kgDOIxVdCQ",
+ "private": false,
+ "ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
+ "svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "archived": false,
+ "disabled": false,
+ "has_wiki": false,
+ "homepage": null,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
+ "language": "TypeScript",
+ "tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
+ "watchers": 1,
+ "blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
+ "clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
+ "forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
+ "full_name": "triggerdotdev/trigger.dev-examples",
+ "has_pages": false,
+ "hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
+ "pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
+ "pushed_at": "2023-01-24T04:20:52Z",
+ "teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
+ "trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
+ "created_at": "2023-01-13T14:26:45Z",
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
+ "has_issues": true,
+ "issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
+ "merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
+ "mirror_url": null,
+ "updated_at": "2023-01-23T14:22:40Z",
+ "visibility": "public",
+ "archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
+ "description": "Node.js project with multiple example Trigger.dev workflows",
+ "forks_count": 0,
+ "is_template": false,
+ "open_issues": 3,
+ "branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
+ "contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
+ "git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
+ "has_projects": true,
+ "releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
+ "allow_forking": true,
+ "assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
+ "downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
+ "has_downloads": false,
+ "languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
+ "default_branch": "main",
+ "milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
+ "stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
+ "watchers_count": 1,
+ "deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
+ "git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
+ "has_discussions": false,
+ "subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
+ "allow_auto_merge": false,
+ "contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
+ "issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
+ "stargazers_count": 1,
+ "subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
+ "collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
+ "issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
+ "notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
+ "open_issues_count": 3,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "allow_squash_merge": true,
+ "merge_commit_title": "MERGE_MESSAGE",
+ "allow_update_branch": false,
+ "merge_commit_message": "PR_TITLE",
+ "delete_branch_on_merge": false,
+ "squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
+ "squash_merge_commit_message": "COMMIT_MESSAGES",
+ "web_commit_signoff_required": false,
+ "use_squash_pr_title_as_default": false
+ },
+ "user": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "type": "Organization",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "label": "triggerdotdev:resend"
+ },
+ "user": {
+ "id": 534,
+ "url": "https://api.github.com/users/ericallam",
+ "type": "User",
+ "login": "ericallam",
+ "node_id": "MDQ6VXNlcjUzNA==",
+ "html_url": "https://github.com/ericallam",
+ "gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/ericallam/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
+ "events_url": "https://api.github.com/users/ericallam/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/ericallam/followers",
+ "following_url": "https://api.github.com/users/ericallam/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/ericallam/orgs",
+ "subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
+ "received_events_url": "https://api.github.com/users/ericallam/received_events"
+ },
+ "draft": false,
+ "state": "open",
+ "title": "Example PR",
+ "_links": {
+ "html": {
+ "href": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4"
+ },
+ "self": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4"
+ },
+ "issue": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4"
+ },
+ "commits": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/commits"
+ },
+ "comments": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4/comments"
+ },
+ "statuses": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07"
+ },
+ "review_comment": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/comments{/number}"
+ },
+ "review_comments": {
+ "href": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/comments"
+ }
+ },
+ "labels": [],
+ "locked": false,
+ "merged": false,
+ "number": 4,
+ "commits": 1,
+ "node_id": "PR_kwDOIxVdCc5IY83X",
+ "assignee": null,
+ "comments": 0,
+ "diff_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4.diff",
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4",
+ "additions": 220,
+ "assignees": [],
+ "closed_at": null,
+ "deletions": 0,
+ "issue_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4",
+ "mergeable": null,
+ "merged_at": null,
+ "merged_by": null,
+ "milestone": null,
+ "patch_url": "https://github.com/triggerdotdev/trigger.dev-examples/pull/4.patch",
+ "auto_merge": null,
+ "created_at": "2023-01-24T04:20:51Z",
+ "rebaseable": null,
+ "updated_at": "2023-01-24T04:20:51Z",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/commits",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/4/comments",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/efc58e149c06f4a45ebf7a0bf34ac25cdcd34b07",
+ "changed_files": 3,
+ "mergeable_state": "unknown",
+ "requested_teams": [],
+ "review_comments": 0,
+ "merge_commit_sha": null,
+ "active_lock_reason": null,
+ "author_association": "MEMBER",
+ "review_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/comments{/number}",
+ "requested_reviewers": [],
+ "review_comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls/4/comments",
+ "maintainer_can_modify": false
+ }
+}
+```
diff --git a/apps/docs/integrations/apis/github/events/push.mdx b/apps/docs/integrations/apis/github/events/push.mdx
new file mode 100644
index 00000000000..b41b808b4bf
--- /dev/null
+++ b/apps/docs/integrations/apis/github/events/push.mdx
@@ -0,0 +1,311 @@
+---
+title: "Push Event"
+sidebarTitle: "Pushes"
+description: "Trigger a workflow whenever a push action is performed in a GitHub repository."
+---
+
+## Usage
+
+```ts
+import { github } from "@trigger.dev/integrations";
+
+new Trigger({
+ id: "demo",
+ on: github.events.pushEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {},
+}).listen();
+```
+
+## Params
+
+
+ The full path to the repository, including the organization
+
+
+## Event
+
+
+ The full git ref that was pushed. Example: refs/heads/master.
+
+
+
+ The SHA of the commit before the push.
+
+
+
+ The SHA of the commit after the push.
+
+
+
+ Whether this was a created branch or tag.
+
+
+
+ Whether this was a deleted branch or tag.
+
+
+
+ Whether this was a forced update or not.
+
+
+
+ If the ref is a branch, this is the branch name that the push was made to.
+
+
+
+ The HTTP URL to compare the two commits.
+
+
+
+ An array of commit objects describing the pushed commits.
+
+
+
+ The head commit object.
+
+
+
+ A repository on GitHub.
+
+
+
+ The GitHub user object who performed the action.
+
+
+
+ The organization object the repository belongs to.
+
+
+## Example Workflows
+
+
+
+```typescript Notify Slack on new push
+new Trigger({
+ id: "github-to-slack",
+ name: "Notify of new push",
+ on: github.events.pushEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {
+ await slack.postMessage("New push to trigger.dev", {
+ channel: "github-changes",
+ text: `New push to trigger.dev by ${event.sender.login}: ${event.compare}`,
+ });
+ },
+}).listen();
+```
+
+
+
+## Example Event payload
+
+```json
+{
+ "ref": "refs/heads/main",
+ "after": "4a0834a1daa09cdd1a03038dbc131f807d887de8",
+ "before": "e7c0680e23fcd3e52d35ddfbb4076112c640d9fa",
+ "forced": false,
+ "pusher": {
+ "name": "ericallam",
+ "email": "eallam@icloud.com"
+ },
+ "sender": {
+ "id": 534,
+ "url": "https://api.github.com/users/ericallam",
+ "type": "User",
+ "login": "ericallam",
+ "node_id": "MDQ6VXNlcjUzNA==",
+ "html_url": "https://github.com/ericallam",
+ "gists_url": "https://api.github.com/users/ericallam/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/ericallam/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/534?v=4",
+ "events_url": "https://api.github.com/users/ericallam/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/ericallam/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/ericallam/followers",
+ "following_url": "https://api.github.com/users/ericallam/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/ericallam/orgs",
+ "subscriptions_url": "https://api.github.com/users/ericallam/subscriptions",
+ "received_events_url": "https://api.github.com/users/ericallam/received_events"
+ },
+ "commits": [
+ {
+ "id": "4a0834a1daa09cdd1a03038dbc131f807d887de8",
+ "url": "https://github.com/triggerdotdev/trigger.dev-examples/commit/4a0834a1daa09cdd1a03038dbc131f807d887de8",
+ "added": [],
+ "author": {
+ "name": "Eric Allam",
+ "email": "eallam@icloud.com",
+ "username": "ericallam"
+ },
+ "message": "Add some documentation for how to run (needs work)",
+ "removed": [],
+ "tree_id": "5c06942324e80422eea4f4c11ff80d4bd8f9d7a7",
+ "distinct": true,
+ "modified": [
+ "README.md",
+ "pnpm-lock.yaml",
+ "src/examples/github-webhook.ts"
+ ],
+ "committer": {
+ "name": "Eric Allam",
+ "email": "eallam@icloud.com",
+ "username": "ericallam"
+ },
+ "timestamp": "2023-01-24T04:43:40Z"
+ }
+ ],
+ "compare": "https://github.com/triggerdotdev/trigger.dev-examples/compare/e7c0680e23fc...4a0834a1daa0",
+ "created": false,
+ "deleted": false,
+ "base_ref": null,
+ "repository": {
+ "id": 588602633,
+ "url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "fork": false,
+ "name": "trigger.dev-examples",
+ "size": 161,
+ "forks": 0,
+ "owner": {
+ "id": 95297378,
+ "url": "https://api.github.com/users/triggerdotdev",
+ "name": "triggerdotdev",
+ "type": "Organization",
+ "email": "hello@trigger.dev",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "html_url": "https://github.com/triggerdotdev",
+ "gists_url": "https://api.github.com/users/triggerdotdev/gists{/gist_id}",
+ "repos_url": "https://api.github.com/users/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/users/triggerdotdev/events{/privacy}",
+ "site_admin": false,
+ "gravatar_id": "",
+ "starred_url": "https://api.github.com/users/triggerdotdev/starred{/owner}{/repo}",
+ "followers_url": "https://api.github.com/users/triggerdotdev/followers",
+ "following_url": "https://api.github.com/users/triggerdotdev/following{/other_user}",
+ "organizations_url": "https://api.github.com/users/triggerdotdev/orgs",
+ "subscriptions_url": "https://api.github.com/users/triggerdotdev/subscriptions",
+ "received_events_url": "https://api.github.com/users/triggerdotdev/received_events"
+ },
+ "topics": [],
+ "git_url": "git://github.com/triggerdotdev/trigger.dev-examples.git",
+ "license": null,
+ "node_id": "R_kgDOIxVdCQ",
+ "private": false,
+ "ssh_url": "git@github.com:triggerdotdev/trigger.dev-examples.git",
+ "svn_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "archived": false,
+ "disabled": false,
+ "has_wiki": false,
+ "homepage": null,
+ "html_url": "https://github.com/triggerdotdev/trigger.dev-examples",
+ "keys_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/keys{/key_id}",
+ "language": "TypeScript",
+ "tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/tags",
+ "watchers": 1,
+ "blobs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/blobs{/sha}",
+ "clone_url": "https://github.com/triggerdotdev/trigger.dev-examples.git",
+ "forks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/forks",
+ "full_name": "triggerdotdev/trigger.dev-examples",
+ "has_pages": false,
+ "hooks_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/hooks",
+ "pulls_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/pulls{/number}",
+ "pushed_at": 1674535423,
+ "teams_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/teams",
+ "trees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/trees{/sha}",
+ "created_at": 1673620005,
+ "events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/events",
+ "has_issues": true,
+ "issues_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues{/number}",
+ "labels_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/labels{/name}",
+ "merges_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/merges",
+ "mirror_url": null,
+ "stargazers": 1,
+ "updated_at": "2023-01-23T14:22:40Z",
+ "visibility": "public",
+ "archive_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/{archive_format}{/ref}",
+ "commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/commits{/sha}",
+ "compare_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/compare/{base}...{head}",
+ "description": "Node.js project with multiple example Trigger.dev workflows",
+ "forks_count": 0,
+ "is_template": false,
+ "open_issues": 2,
+ "branches_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/branches{/branch}",
+ "comments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/comments{/number}",
+ "contents_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contents/{+path}",
+ "git_refs_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/refs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/tags{/sha}",
+ "has_projects": true,
+ "organization": "triggerdotdev",
+ "releases_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/releases{/id}",
+ "statuses_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/statuses/{sha}",
+ "allow_forking": true,
+ "assignees_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/assignees{/user}",
+ "downloads_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/downloads",
+ "has_downloads": false,
+ "languages_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/languages",
+ "master_branch": "main",
+ "default_branch": "main",
+ "milestones_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/milestones{/number}",
+ "stargazers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/stargazers",
+ "watchers_count": 1,
+ "deployments_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/deployments",
+ "git_commits_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/git/commits{/sha}",
+ "has_discussions": false,
+ "subscribers_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscribers",
+ "contributors_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/contributors",
+ "issue_events_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/events{/number}",
+ "stargazers_count": 1,
+ "subscription_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/subscription",
+ "collaborators_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/collaborators{/collaborator}",
+ "issue_comment_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/issues/comments{/number}",
+ "notifications_url": "https://api.github.com/repos/triggerdotdev/trigger.dev-examples/notifications{?since,all,participating}",
+ "open_issues_count": 2,
+ "web_commit_signoff_required": false
+ },
+ "head_commit": {
+ "id": "4a0834a1daa09cdd1a03038dbc131f807d887de8",
+ "url": "https://github.com/triggerdotdev/trigger.dev-examples/commit/4a0834a1daa09cdd1a03038dbc131f807d887de8",
+ "added": [],
+ "author": {
+ "name": "Eric Allam",
+ "email": "eallam@icloud.com",
+ "username": "ericallam"
+ },
+ "message": "Add some documentation for how to run (needs work)",
+ "removed": [],
+ "tree_id": "5c06942324e80422eea4f4c11ff80d4bd8f9d7a7",
+ "distinct": true,
+ "modified": [
+ "README.md",
+ "pnpm-lock.yaml",
+ "src/examples/github-webhook.ts"
+ ],
+ "committer": {
+ "name": "Eric Allam",
+ "email": "eallam@icloud.com",
+ "username": "ericallam"
+ },
+ "timestamp": "2023-01-24T04:43:40Z"
+ },
+ "organization": {
+ "id": 95297378,
+ "url": "https://api.github.com/orgs/triggerdotdev",
+ "login": "triggerdotdev",
+ "node_id": "O_kgDOBa4fYg",
+ "hooks_url": "https://api.github.com/orgs/triggerdotdev/hooks",
+ "repos_url": "https://api.github.com/orgs/triggerdotdev/repos",
+ "avatar_url": "https://avatars.githubusercontent.com/u/95297378?v=4",
+ "events_url": "https://api.github.com/orgs/triggerdotdev/events",
+ "issues_url": "https://api.github.com/orgs/triggerdotdev/issues",
+ "description": "",
+ "members_url": "https://api.github.com/orgs/triggerdotdev/members{/member}",
+ "public_members_url": "https://api.github.com/orgs/triggerdotdev/public_members{/member}"
+ }
+}
+```
diff --git a/apps/docs/integrations/apis/resend/actions/send-email.mdx b/apps/docs/integrations/apis/resend/actions/send-email.mdx
new file mode 100644
index 00000000000..1ab79e7c8b8
--- /dev/null
+++ b/apps/docs/integrations/apis/resend/actions/send-email.mdx
@@ -0,0 +1,127 @@
+---
+title: "Send Email"
+sidebarTitle: "Send Email"
+description: "Send email using Resend.com"
+---
+
+Send email using Resend.com, which supports sending emails using React, HTML, and plain text. Resend.com is currently in private beta but you can request early access [here](https://resend.com/).
+
+
+ If you'd like to render emails using React, please see the [React.email
+ docs](https://react.email/)
+
+
+## Params
+
+
+ A unique string. Please see the [Keys and Resumability](/guides/resumability)
+ doc for more info.
+
+
+
+
+
+ The text of the email. If `html` is provided, this will be used as the
+ plain text version of the email.
+
+
+
+ The HTML of the email. If `text` is provided, this will be used as the
+ HTML version of the email.
+
+
+
+ A React component that will be rendered to HTML and used as the email
+ content. Please see the [React.email docs](https://react.email/) for more info
+
+
+
+ The subject of the email.
+
+
+
+ The email address of the sender.
+
+
+
+ One or more email addresses of the recipients.
+
+
+
+ One or more email addresses of the CC recipients.
+
+
+
+ One or more email addresses of the BCC recipients.
+
+
+
+ An optional email address to use as the reply-to address.
+
+
+
+
+
+## Response
+
+
+ The ID of the email.
+
+
+
+ The email address of the sender.
+
+
+
+ The email address of the recipient.
+
+
+
+ The date and time the email was created.
+
+
+## Example Workflows
+
+
+
+```typescript criticalIssue.tsx
+import { github, resend } from "@trigger.dev/integrations";
+import { CriticalIssueEmail } from "./emails";
+
+new Trigger({
+ id: "email-ops",
+ name: "On Critical Issue",
+ on: github.events.issueEvent({
+ repo: "triggerdotdev/trigger.dev",
+ }),
+ run: async (event, ctx) => {
+ if (event.action === "labeled" && event.label.name === "critical") {
+ await resend.sendEmail("🚨 Alert Ops", {
+ to: "ops@trigger.dev",
+ from: "internal@trigger.dev",
+ subject: `Critical issue: ${event.issue.title}`,
+ react: (
+
+ ),
+ });
+ }
+ },
+}).listen();
+```
+
+
+
+## Example Response
+
+```json
+{
+ "id": "1673618429",
+ "from": "internal@trigger.dev",
+ "to": "ops@trigger.dev",
+ "created_at": "2023-01-24T14:38:26Z"
+}
+```
diff --git a/apps/docs/mint.json b/apps/docs/mint.json
index 6e7db9164f4..16669e28583 100644
--- a/apps/docs/mint.json
+++ b/apps/docs/mint.json
@@ -3,7 +3,7 @@
"logo": {
"dark": "/logo/light.png",
"light": "/logo/light.png",
- "href": "https://app.trigger.dev"
+ "href": "https://trigger.dev"
},
"favicon": "/images/favicon.png",
"colors": {
@@ -15,25 +15,43 @@
"to": "#0fd122"
}
},
+ "backgroundImage": "/images/docs-background.png",
"modeToggle": {
"default": "dark",
"isHidden": true
},
- "topbarLinks": [
+ "topbarCtaButton": {
+ "type": "github",
+ "url": "https://github.com/triggerdotdev/trigger.dev"
+ },
+ "anchors": [
+ {
+ "name": "Community",
+ "icon": "discord",
+ "url": "https://discord.gg/nkqV9xBYWy"
+ },
{
"name": "GitHub",
+ "icon": "github",
"url": "https://github.com/triggerdotdev/trigger.dev"
}
],
- "topbarCtaButton": {
- "name": "Trigger.dev",
- "url": "https://app.trigger.dev"
- },
"navigation": [
{
"group": "Getting Started",
"pages": [
- "getting-started"
+ "welcome",
+ "getting-started",
+ "get-help"
+ ]
+ },
+ {
+ "group": "Examples",
+ "pages": [
+ "examples/examples",
+ "examples/slack",
+ "examples/github",
+ "examples/shopify"
]
},
{
@@ -55,6 +73,12 @@
"pages": [
"integrations/apis/slack/actions/post-message"
]
+ },
+ {
+ "group": "Resend.com",
+ "pages": [
+ "integrations/apis/resend/actions/send-email"
+ ]
}
]
},
@@ -75,7 +99,8 @@
"group": "Guides",
"pages": [
"guides/resumability",
- "guides/zod"
+ "guides/zod",
+ "guides/event-driven"
]
},
{
@@ -84,23 +109,21 @@
{
"group": "GitHub",
"pages": [
+ "integrations/apis/github/events/push",
+ "integrations/apis/github/events/issues",
+ "integrations/apis/github/events/issue-comments",
+ "integrations/apis/github/events/pull-requests",
+ "integrations/apis/github/events/pull-request-reviews",
+ "integrations/apis/github/events/pull-request-comments",
"integrations/apis/github/events/new-star"
]
}
]
- },
- {
- "group": "Example workflows",
- "pages": [
- "examples/github",
- "examples/shopify",
- "examples/slack"
- ]
}
],
"footerSocials": {
- "website": "https://app.trigger.dev",
"twitter": "https://twitter.com/triggerdotdev",
- "github": "https://github.com/triggerdotdev/trigger.dev"
+ "github": "https://github.com/triggerdotdev/trigger.dev",
+ "discord": "https://discord.gg/nkqV9xBYWy"
}
}
\ No newline at end of file
diff --git a/apps/docs/package.json b/apps/docs/package.json
index ab20283dd6f..31ae16e9b98 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -4,9 +4,9 @@
"description": "Trigger.dev documentation",
"private": true,
"scripts": {
- "dev": "PORT=3050 mintlify dev"
+ "dev": "mintlify dev --port 3050"
},
"devDependencies": {
- "mintlify": "^1.3.0"
+ "mintlify": "^2.0.14"
}
-}
+}
\ No newline at end of file
diff --git a/apps/docs/triggers/custom-events.mdx b/apps/docs/triggers/custom-events.mdx
index 30cd1c25b9a..96b793c9831 100644
--- a/apps/docs/triggers/custom-events.mdx
+++ b/apps/docs/triggers/custom-events.mdx
@@ -4,27 +4,28 @@ sidebarTitle: "Custom events"
description: "Custom event triggers allow you to run workflows from your own code (or your other workflows)"
---
-[Send an event](/functions/send-event) and any workflows that subscribe to that Custom event will get triggered.
+[Send an event](/functions/send-event) and any workflows that subscribe to that custom event will get triggered.
## Name and Schemas
### Name
-Custom event triggers have a `name`. They will only get triggered when a custom even with that name are sent.
+Custom event triggers have a `name`. They will only get triggered when a custom event with that name are sent.
### Schema
-Custom event triggers have a schema. This is used to validate the data that is sent with the event. If the data does not match the schema, the workflow will not run.
+Custom event triggers take a [Zod](https://github.com/colinhacks/zod) schema. This is used to validate the data that is sent with the event. If the data does not match the schema, the workflow will not run.
-It also means that inside your run function you will have type safety for the data you receive. We use [Zod](https://github.com/colinhacks/zod#installation) for our schemas – it's a fantastic library that allows you to define schemas in a very simple way.
+It also means that inside your run function the event param will be typed correctly. We use [Zod](https://github.com/colinhacks/zod#installation) for our schemas – it's a fantastic library that allows you to define schemas in a very simple way.
-You can always start out by using `z.any()` as your schema, and then later on you can add more strict validation.
+You can always start out by using `z.any()` as your schema, and then later on you can add more strict validation. See our [Zod guide](/guides/zod) for more information.
## Example
```ts
import { Trigger, customEvent } from "@trigger.dev/sdk";
import { slack } from "@trigger.dev/integrations";
+import { z } from "zod";
//this workflow will run when a "user.created" event is sent
new Trigger({
diff --git a/apps/docs/welcome.mdx b/apps/docs/welcome.mdx
new file mode 100644
index 00000000000..5b7272966a2
--- /dev/null
+++ b/apps/docs/welcome.mdx
@@ -0,0 +1,48 @@
+---
+title: "Trigger.dev Documentation"
+sidebarTitle: "Welcome"
+description: ""
+---
+
+
+ Trigger.dev is in private beta. We are now inviting users from our waitlist
+ [here.](https://bcymafitv0e.typeform.com/tddsignup?typeform-source=trigger.dev#source=Docs)
+
+
+Trigger.dev is an open source platform that enables developers to create event-driven background tasks directly in their code. Build, test and run workflows locally and subscribe to webhooks, schedule jobs, run background jobs and add long delays easily and reliably.
+
+Workflows live in your codebase so you can use your existing types, functions, version control and IDE. They are triggered by us but run on your server so your private data is never exposed.
+
+_A workflow in action:_
+
+
+
+
+ Quickly get up and running with Trigger.dev by following our quick start
+ guide.
+
+
+ One of the quickest ways to learn how Trigger.dev works is to view some
+ example workflows.
+
+
+ The #help-and-questions channel is a great place to get help with any
+ questions about Trigger.dev.
+
+
+ Arrange a call with one of the founders. We can help answer questions, build
+ API integrations for you and help you with workflows.
+
+
diff --git a/apps/webapp/app/assets/images/discord.png b/apps/webapp/app/assets/images/discord.png
new file mode 100644
index 00000000000..f728120e659
Binary files /dev/null and b/apps/webapp/app/assets/images/discord.png differ
diff --git a/apps/webapp/app/assets/images/onboarding-image.png b/apps/webapp/app/assets/images/onboarding-image.png
index 40406c0cf74..04337710b0d 100644
Binary files a/apps/webapp/app/assets/images/onboarding-image.png and b/apps/webapp/app/assets/images/onboarding-image.png differ
diff --git a/apps/webapp/app/components/CreateNewWorkflow.tsx b/apps/webapp/app/components/CreateNewWorkflow.tsx
index 4c07c1e2bf5..92961e3930b 100644
--- a/apps/webapp/app/components/CreateNewWorkflow.tsx
+++ b/apps/webapp/app/components/CreateNewWorkflow.tsx
@@ -3,9 +3,10 @@ import { Panel } from "./layout/Panel";
import { PrimaryA, SecondaryA } from "./primitives/Buttons";
import { Body } from "./primitives/text/Body";
import { SubTitle } from "./primitives/text/SubTitle";
-import onboarding from "../assets/images/onboarding-image.png";
import { ApiLogoIcon } from "~/components/code/ApiLogoIcon";
import { getProviders } from "@trigger.dev/providers";
+import onboarding from "../assets/images/onboarding-image.png";
+import discord from "../assets/images/discord.png";
export default function CreateNewWorkflow() {
return (
@@ -42,13 +43,10 @@ export function CreateNewWorkflowNoWorkflows() {
Trigger.dev workflows are written in your own codebase and run in
your existing infrastructure.
+
To get started
-
+
Check out the Quick Start Guide to create your first workflow in
your code.
@@ -80,10 +78,7 @@ export function CreateNewWorkflowNoWorkflows() {
Example workflows
-
+
API integrations
@@ -97,7 +92,7 @@ export function CreateNewWorkflowNoWorkflows() {
{" "}
and we'll add it.
-
+
{getProviders(false).map((provider) => (
+
+ Join the community
+
+
+ To get help quickly and answers to any questions, join our Discord.
+
+
+
+ Join Discord
+