Started fleshing out GitHub events with examples and more events

This commit is contained in:
Matt Aitken
2023-06-21 17:00:29 +01:00
parent 172bb4527c
commit 25f9aa8c2d
5 changed files with 741 additions and 274 deletions
@@ -0,0 +1,51 @@
import { client, github, slack } from "@/trigger";
import { Github } from "@trigger.dev/github";
import { events } from "@trigger.dev/github";
import { Job } from "@trigger.dev/sdk";
const githubApiKey = new Github({
id: "github-api-key",
token: process.env.GITHUB_API_KEY!,
});
new Job(client, {
id: "github-integration-on-issue",
name: "GitHub Integration - On Issue",
version: "0.1.0",
trigger: githubApiKey.triggers.repo({
event: events.onIssue,
repo: "triggerdotdev/empty",
}),
run: async (payload, io, ctx) => {
await io.logger.info("This is a simple log info message");
return { payload, ctx };
},
});
new Job(client, {
id: "github-integration-on-issue-opened",
name: "GitHub Integration - On Issue Opened",
version: "0.1.0",
trigger: githubApiKey.triggers.repo({
event: events.onIssueOpened,
repo: "triggerdotdev/empty",
}),
run: async (payload, io, ctx) => {
await io.logger.info("This is a simple log info message");
return { payload, ctx };
},
});
new Job(client, {
id: "github-integration-on-issue-assigned",
name: "GitHub Integration - On Issue assigned",
version: "0.1.0",
trigger: githubApiKey.triggers.repo({
event: events.onIssueAssigned,
repo: "triggerdotdev/empty",
}),
run: async (payload, io, ctx) => {
await io.logger.info("This is a simple log info message");
return { payload, ctx };
},
});
@@ -1,4 +1,5 @@
import { client } from "@/trigger";
import "@/jobs/github";
import { createPagesRoute } from "@trigger.dev/nextjs";
const { handler, config } = createPagesRoute(client, { path: "/api/trigger" });
+63 -273
View File
@@ -1,6 +1,7 @@
import { RequestRequestOptions } from "@octokit/types";
import {
IssueCommentEvent,
IssuesAssignedEvent,
IssuesEvent,
IssuesOpenedEvent,
RepositoryCreatedEvent,
@@ -16,6 +17,7 @@ import {
import { Octokit } from "octokit";
import { createOrgEventSource, createRepoEventSource } from "./sources";
import { tasks } from "./tasks";
import { issueAssigned, issueOpened } from "./webhook-examples";
export type GithubIntegrationOptions = {
id: string;
@@ -108,6 +110,16 @@ function createClientFromOptions(
};
}
const onIssue: EventSpecification<IssuesEvent> = {
name: "issues",
title: "On issue",
source: "github.com",
icon: "github",
examples: [issueOpened, issueAssigned],
parsePayload: (payload) => payload as IssuesEvent,
runProperties: (payload) => issueProperties(payload),
};
const onIssueOpened: EventSpecification<IssuesOpenedEvent> = {
name: "issues",
title: "On issue opened",
@@ -116,283 +128,27 @@ const onIssueOpened: EventSpecification<IssuesOpenedEvent> = {
filter: {
action: ["opened"],
},
examples: [
{
id: "issues_1",
name: "Issue opened",
payload: {
issue: {
id: 1754473379,
url: "https://api.github.com/repos/ericallam/basic-starter-12k/issues/21",
body: 'This is a *big* problem:\r\n\r\n```\r\nconst foo = "bar"\r\n```',
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: "This is a sample issue title #20",
labels: [],
locked: false,
number: 21,
node_id: "I_kwDOI-yZFc5okyOj",
assignee: null,
comments: 0,
html_url: "https://github.com/ericallam/basic-starter-12k/issues/21",
assignees: [],
closed_at: null,
milestone: null,
reactions: {
"+1": 0,
"-1": 0,
url: "https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/reactions",
eyes: 0,
heart: 0,
laugh: 0,
hooray: 0,
rocket: 0,
confused: 0,
total_count: 0,
},
created_at: "2023-06-13T09:42:02Z",
events_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/events",
labels_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/labels{/name}",
updated_at: "2023-06-13T09:42:02Z",
comments_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/comments",
state_reason: null,
timeline_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/timeline",
repository_url:
"https://api.github.com/repos/ericallam/basic-starter-12k",
active_lock_reason: null,
author_association: "NONE",
performed_via_github_app: null,
},
action: "opened",
sender: {
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",
},
repository: {
id: 602708245,
url: "https://api.github.com/repos/ericallam/basic-starter-12k",
fork: false,
name: "basic-starter-12k",
size: 0,
forks: 0,
owner: {
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",
},
topics: [],
git_url: "git://github.com/ericallam/basic-starter-12k.git",
license: null,
node_id: "R_kgDOI-yZFQ",
private: false,
ssh_url: "git@github.com:ericallam/basic-starter-12k.git",
svn_url: "https://github.com/ericallam/basic-starter-12k",
archived: false,
disabled: false,
has_wiki: true,
homepage: null,
html_url: "https://github.com/ericallam/basic-starter-12k",
keys_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/keys{/key_id}",
language: null,
tags_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/tags",
watchers: 0,
blobs_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/blobs{/sha}",
clone_url: "https://github.com/ericallam/basic-starter-12k.git",
forks_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/forks",
full_name: "ericallam/basic-starter-12k",
has_pages: false,
hooks_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/hooks",
pulls_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/pulls{/number}",
pushed_at: "2023-02-16T19:25:20Z",
teams_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/teams",
trees_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/trees{/sha}",
created_at: "2023-02-16T19:25:19Z",
events_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/events",
has_issues: true,
issues_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues{/number}",
labels_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/labels{/name}",
merges_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/merges",
mirror_url: null,
updated_at: "2023-02-16T19:25:19Z",
visibility: "public",
archive_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/{archive_format}{/ref}",
commits_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/commits{/sha}",
compare_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/compare/{base}...{head}",
description: null,
forks_count: 0,
is_template: false,
open_issues: 21,
branches_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/branches{/branch}",
comments_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/comments{/number}",
contents_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/contents/{+path}",
git_refs_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/refs{/sha}",
git_tags_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/tags{/sha}",
has_projects: true,
releases_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/releases{/id}",
statuses_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/statuses/{sha}",
allow_forking: true,
assignees_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/assignees{/user}",
downloads_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/downloads",
has_downloads: true,
languages_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/languages",
default_branch: "main",
milestones_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/milestones{/number}",
stargazers_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/stargazers",
watchers_count: 0,
deployments_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/deployments",
git_commits_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/commits{/sha}",
has_discussions: false,
subscribers_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/subscribers",
contributors_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/contributors",
issue_events_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/events{/number}",
stargazers_count: 0,
subscription_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/subscription",
collaborators_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/collaborators{/collaborator}",
issue_comment_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/comments{/number}",
notifications_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/notifications{?since,all,participating}",
open_issues_count: 21,
web_commit_signoff_required: false,
},
},
},
],
examples: [issueOpened],
parsePayload: (payload) => payload as IssuesOpenedEvent,
runProperties: (payload) => [
{
label: "Issue",
text: `#${payload.issue.number}: ${payload.issue.title}`,
url: payload.issue.html_url,
},
{
label: "Author",
text: payload.sender.login,
url: payload.sender.html_url,
},
],
runProperties: (payload) => issueProperties(payload),
};
const onIssue: EventSpecification<IssuesEvent> = {
const onIssueAssigned: EventSpecification<IssuesAssignedEvent> = {
name: "issues",
title: "On issue",
title: "On issue assigned",
source: "github.com",
icon: "github",
parsePayload: (payload) => payload as IssuesEvent,
filter: {
action: ["assigned"],
},
examples: [issueAssigned],
parsePayload: (payload) => payload as IssuesAssignedEvent,
runProperties: (payload) => [
...issueProperties(payload),
{
label: "Issue",
text: `#${payload.issue.number}: ${payload.issue.title}`,
url: payload.issue.html_url,
},
{
label: "Author",
text: payload.sender.login,
url: payload.sender.html_url,
label: "Assignee",
text: payload.assignee?.login ?? "none",
url: payload.assignee?.html_url,
},
],
};
@@ -403,7 +159,11 @@ const onIssueComment: EventSpecification<IssueCommentEvent> = {
source: "github.com",
icon: "github",
parsePayload: (payload) => payload as IssueCommentEvent,
runProperties: (payload) => [
runProperties: (payload) => issueProperties(payload),
};
function issueProperties(payload: IssuesEvent | IssueCommentEvent) {
return [
{
label: "Issue",
text: `#${payload.issue.number}: ${payload.issue.title}`,
@@ -414,8 +174,8 @@ const onIssueComment: EventSpecification<IssueCommentEvent> = {
text: payload.sender.login,
url: payload.sender.html_url,
},
],
};
];
}
const onStar: EventSpecification<StarEvent> = {
name: "star",
@@ -423,6 +183,7 @@ const onStar: EventSpecification<StarEvent> = {
source: "github.com",
icon: "github",
parsePayload: (payload) => payload as StarEvent,
runProperties: (payload) => starProperties(payload),
};
const onNewStar: EventSpecification<StarCreatedEvent> = {
@@ -434,8 +195,29 @@ const onNewStar: EventSpecification<StarCreatedEvent> = {
action: ["created"],
},
parsePayload: (payload) => payload as StarCreatedEvent,
runProperties: (payload) => starProperties(payload),
};
function starProperties(payload: StarEvent) {
return [
{
label: "Repo",
text: `${payload.repository.name}`,
url: payload.repository.url,
},
{
label: "Author",
text: payload.sender.login,
url: payload.sender.html_url,
},
{
label: "Star count",
text: `${payload.repository.stargazers_count}`,
url: payload.repository.stargazers_url,
},
];
}
const onNewRepository: EventSpecification<RepositoryCreatedEvent> = {
name: "repository",
title: "On new repository",
@@ -448,11 +230,19 @@ const onNewRepository: EventSpecification<RepositoryCreatedEvent> = {
};
export const events = {
onIssueOpened,
/** When any action is performed on an issue */
onIssue,
/** When an issue is opened */
onIssueOpened,
/** When an issue is assigned */
onIssueAssigned,
/** When an issue is commented on */
onIssueComment,
/** When a repo is starred or unstarred */
onStar,
/** When a repo is starred */
onNewStar,
/** When a new repo is created */
onNewRepository,
};
+565
View File
@@ -0,0 +1,565 @@
import { EventSpecificationExample } from "@trigger.dev/sdk";
export const issueAssigned: EventSpecificationExample = {
id: "issue.assigned",
name: "Issue assigned",
payload: {
issue: {
id: 1767861922,
url: "https://api.github.com/repos/triggerdotdev/empty/issues/4",
body: "This is the bod",
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: "Fourth time lucky?",
labels: [],
locked: false,
number: 4,
node_id: "I_kwDOJyTwbc5pX26i",
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: 1,
html_url: "https://github.com/triggerdotdev/empty/issues/4",
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/empty/issues/4/reactions",
eyes: 0,
heart: 0,
laugh: 0,
hooray: 0,
rocket: 0,
confused: 0,
total_count: 0,
},
created_at: "2023-06-21T15:24:20Z",
events_url:
"https://api.github.com/repos/triggerdotdev/empty/issues/4/events",
labels_url:
"https://api.github.com/repos/triggerdotdev/empty/issues/4/labels{/name}",
updated_at: "2023-06-21T15:36:53Z",
comments_url:
"https://api.github.com/repos/triggerdotdev/empty/issues/4/comments",
state_reason: null,
timeline_url:
"https://api.github.com/repos/triggerdotdev/empty/issues/4/timeline",
repository_url: "https://api.github.com/repos/triggerdotdev/empty",
active_lock_reason: null,
author_association: "MEMBER",
performed_via_github_app: null,
},
action: "assigned",
sender: {
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",
},
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",
},
repository: {
id: 656732269,
url: "https://api.github.com/repos/triggerdotdev/empty",
fork: false,
name: "empty",
size: 0,
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/empty.git",
license: null,
node_id: "R_kgDOJyTwbQ",
private: false,
ssh_url: "git@github.com:triggerdotdev/empty.git",
svn_url: "https://github.com/triggerdotdev/empty",
archived: false,
disabled: false,
has_wiki: true,
homepage: null,
html_url: "https://github.com/triggerdotdev/empty",
keys_url:
"https://api.github.com/repos/triggerdotdev/empty/keys{/key_id}",
language: null,
tags_url: "https://api.github.com/repos/triggerdotdev/empty/tags",
watchers: 0,
blobs_url:
"https://api.github.com/repos/triggerdotdev/empty/git/blobs{/sha}",
clone_url: "https://github.com/triggerdotdev/empty.git",
forks_url: "https://api.github.com/repos/triggerdotdev/empty/forks",
full_name: "triggerdotdev/empty",
has_pages: false,
hooks_url: "https://api.github.com/repos/triggerdotdev/empty/hooks",
pulls_url:
"https://api.github.com/repos/triggerdotdev/empty/pulls{/number}",
pushed_at: "2023-06-21T14:21:08Z",
teams_url: "https://api.github.com/repos/triggerdotdev/empty/teams",
trees_url:
"https://api.github.com/repos/triggerdotdev/empty/git/trees{/sha}",
created_at: "2023-06-21T14:21:07Z",
events_url: "https://api.github.com/repos/triggerdotdev/empty/events",
has_issues: true,
issues_url:
"https://api.github.com/repos/triggerdotdev/empty/issues{/number}",
labels_url:
"https://api.github.com/repos/triggerdotdev/empty/labels{/name}",
merges_url: "https://api.github.com/repos/triggerdotdev/empty/merges",
mirror_url: null,
updated_at: "2023-06-21T14:21:08Z",
visibility: "public",
archive_url:
"https://api.github.com/repos/triggerdotdev/empty/{archive_format}{/ref}",
commits_url:
"https://api.github.com/repos/triggerdotdev/empty/commits{/sha}",
compare_url:
"https://api.github.com/repos/triggerdotdev/empty/compare/{base}...{head}",
description:
"An empty repo that can be used to test the @trigger.dev/github integration",
forks_count: 0,
is_template: false,
open_issues: 4,
branches_url:
"https://api.github.com/repos/triggerdotdev/empty/branches{/branch}",
comments_url:
"https://api.github.com/repos/triggerdotdev/empty/comments{/number}",
contents_url:
"https://api.github.com/repos/triggerdotdev/empty/contents/{+path}",
git_refs_url:
"https://api.github.com/repos/triggerdotdev/empty/git/refs{/sha}",
git_tags_url:
"https://api.github.com/repos/triggerdotdev/empty/git/tags{/sha}",
has_projects: true,
releases_url:
"https://api.github.com/repos/triggerdotdev/empty/releases{/id}",
statuses_url:
"https://api.github.com/repos/triggerdotdev/empty/statuses/{sha}",
allow_forking: true,
assignees_url:
"https://api.github.com/repos/triggerdotdev/empty/assignees{/user}",
downloads_url:
"https://api.github.com/repos/triggerdotdev/empty/downloads",
has_downloads: true,
languages_url:
"https://api.github.com/repos/triggerdotdev/empty/languages",
default_branch: "main",
milestones_url:
"https://api.github.com/repos/triggerdotdev/empty/milestones{/number}",
stargazers_url:
"https://api.github.com/repos/triggerdotdev/empty/stargazers",
watchers_count: 0,
deployments_url:
"https://api.github.com/repos/triggerdotdev/empty/deployments",
git_commits_url:
"https://api.github.com/repos/triggerdotdev/empty/git/commits{/sha}",
has_discussions: false,
subscribers_url:
"https://api.github.com/repos/triggerdotdev/empty/subscribers",
contributors_url:
"https://api.github.com/repos/triggerdotdev/empty/contributors",
issue_events_url:
"https://api.github.com/repos/triggerdotdev/empty/issues/events{/number}",
stargazers_count: 0,
subscription_url:
"https://api.github.com/repos/triggerdotdev/empty/subscription",
collaborators_url:
"https://api.github.com/repos/triggerdotdev/empty/collaborators{/collaborator}",
issue_comment_url:
"https://api.github.com/repos/triggerdotdev/empty/issues/comments{/number}",
notifications_url:
"https://api.github.com/repos/triggerdotdev/empty/notifications{?since,all,participating}",
open_issues_count: 4,
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}",
},
},
};
export const issueOpened: EventSpecificationExample = {
id: "issues_1",
name: "Issue opened",
payload: {
issue: {
id: 1754473379,
url: "https://api.github.com/repos/ericallam/basic-starter-12k/issues/21",
body: 'This is a *big* problem:\r\n\r\n```\r\nconst foo = "bar"\r\n```',
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: "This is a sample issue title #20",
labels: [],
locked: false,
number: 21,
node_id: "I_kwDOI-yZFc5okyOj",
assignee: null,
comments: 0,
html_url: "https://github.com/ericallam/basic-starter-12k/issues/21",
assignees: [],
closed_at: null,
milestone: null,
reactions: {
"+1": 0,
"-1": 0,
url: "https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/reactions",
eyes: 0,
heart: 0,
laugh: 0,
hooray: 0,
rocket: 0,
confused: 0,
total_count: 0,
},
created_at: "2023-06-13T09:42:02Z",
events_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/events",
labels_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/labels{/name}",
updated_at: "2023-06-13T09:42:02Z",
comments_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/comments",
state_reason: null,
timeline_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/21/timeline",
repository_url:
"https://api.github.com/repos/ericallam/basic-starter-12k",
active_lock_reason: null,
author_association: "NONE",
performed_via_github_app: null,
},
action: "opened",
sender: {
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",
},
repository: {
id: 602708245,
url: "https://api.github.com/repos/ericallam/basic-starter-12k",
fork: false,
name: "basic-starter-12k",
size: 0,
forks: 0,
owner: {
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",
},
topics: [],
git_url: "git://github.com/ericallam/basic-starter-12k.git",
license: null,
node_id: "R_kgDOI-yZFQ",
private: false,
ssh_url: "git@github.com:ericallam/basic-starter-12k.git",
svn_url: "https://github.com/ericallam/basic-starter-12k",
archived: false,
disabled: false,
has_wiki: true,
homepage: null,
html_url: "https://github.com/ericallam/basic-starter-12k",
keys_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/keys{/key_id}",
language: null,
tags_url: "https://api.github.com/repos/ericallam/basic-starter-12k/tags",
watchers: 0,
blobs_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/blobs{/sha}",
clone_url: "https://github.com/ericallam/basic-starter-12k.git",
forks_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/forks",
full_name: "ericallam/basic-starter-12k",
has_pages: false,
hooks_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/hooks",
pulls_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/pulls{/number}",
pushed_at: "2023-02-16T19:25:20Z",
teams_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/teams",
trees_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/trees{/sha}",
created_at: "2023-02-16T19:25:19Z",
events_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/events",
has_issues: true,
issues_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues{/number}",
labels_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/labels{/name}",
merges_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/merges",
mirror_url: null,
updated_at: "2023-02-16T19:25:19Z",
visibility: "public",
archive_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/{archive_format}{/ref}",
commits_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/commits{/sha}",
compare_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/compare/{base}...{head}",
description: null,
forks_count: 0,
is_template: false,
open_issues: 21,
branches_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/branches{/branch}",
comments_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/comments{/number}",
contents_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/contents/{+path}",
git_refs_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/refs{/sha}",
git_tags_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/tags{/sha}",
has_projects: true,
releases_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/releases{/id}",
statuses_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/statuses/{sha}",
allow_forking: true,
assignees_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/assignees{/user}",
downloads_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/downloads",
has_downloads: true,
languages_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/languages",
default_branch: "main",
milestones_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/milestones{/number}",
stargazers_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/stargazers",
watchers_count: 0,
deployments_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/deployments",
git_commits_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/git/commits{/sha}",
has_discussions: false,
subscribers_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/subscribers",
contributors_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/contributors",
issue_events_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/events{/number}",
stargazers_count: 0,
subscription_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/subscription",
collaborators_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/collaborators{/collaborator}",
issue_comment_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/issues/comments{/number}",
notifications_url:
"https://api.github.com/repos/ericallam/basic-starter-12k/notifications{?since,all,participating}",
open_issues_count: 21,
web_commit_signoff_required: false,
},
},
};
+61 -1
View File
@@ -530,19 +530,23 @@ importers:
specifiers:
'@heroicons/react': ^2.0.13
'@types/node': 20.3.1
'@types/node-fetch': 2.6.x
'@types/react': ^18.0.21
'@types/react-dom': ^18.0.6
autoprefixer: 10.4.14
clsx: ^1.2.1
eslint: ^8.24.0
eslint-config-next: 13.4.6
msw: ^0.47.0
next: 13.3.1
postcss: 8.4.24
react: ^18.2.0
react-dom: ^18.2.0
tailwind-merge: ^1.12.0
tailwindcss: 3.3.2
ts-loader: ^9.4.2
typescript: 5.1.3
webpack: ^5.0.0
dependencies:
'@heroicons/react': 2.0.13_react@18.2.0
'@types/node': 20.3.1
@@ -559,6 +563,11 @@ importers:
tailwind-merge: 1.12.0
tailwindcss: 3.3.2
typescript: 5.1.3
devDependencies:
'@types/node-fetch': 2.6.2
msw: 0.47.4_typescript@5.1.3
ts-loader: 9.4.2_myiobgd6xjctomu2xmm6lnfgqm
webpack: 5.80.0
integrations/github:
specifiers:
@@ -18479,6 +18488,43 @@ packages:
- supports-color
dev: true
/msw/0.47.4_typescript@5.1.3:
resolution: {integrity: sha512-Psftt8Yfl0+l+qqg9OlmKEsxF8S/vtda0CmlR6y8wTaWrMMzuCDa55n2hEGC0ZRDwuV6FFWc/4CjoDsBpATKBw==}
engines: {node: '>=14'}
hasBin: true
requiresBuild: true
peerDependencies:
typescript: '>= 4.2.x <= 4.8.x'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@mswjs/cookies': 0.2.2
'@mswjs/interceptors': 0.17.6
'@open-draft/until': 1.0.3
'@types/cookie': 0.4.1
'@types/js-levenshtein': 1.1.1
chalk: 4.1.1
chokidar: 3.5.3
cookie: 0.4.2
graphql: 16.6.0
headers-polyfill: 3.1.2
inquirer: 8.2.5
is-node-process: 1.0.1
js-levenshtein: 1.1.6
node-fetch: 2.6.7
outvariant: 1.3.0
path-to-regexp: 6.2.1
statuses: 2.0.1
strict-event-emitter: 0.2.8
type-fest: 2.19.0
typescript: 5.1.3
yargs: 17.6.2
transitivePeerDependencies:
- encoding
- supports-color
dev: true
/mute-stream/0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
@@ -22566,6 +22612,21 @@ packages:
webpack: 5.80.0
dev: true
/ts-loader/9.4.2_myiobgd6xjctomu2xmm6lnfgqm:
resolution: {integrity: sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==}
engines: {node: '>=12.0.0'}
peerDependencies:
typescript: '*'
webpack: ^5.0.0
dependencies:
chalk: 4.1.2
enhanced-resolve: 5.13.0
micromatch: 4.0.5
semver: 7.5.0
typescript: 5.1.3
webpack: 5.80.0
dev: true
/ts-node/10.9.1_fodzh64fuekdilycyvke2qmf2e:
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
@@ -22957,7 +23018,6 @@ packages:
resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==}
engines: {node: '>=14.17'}
hasBin: true
dev: false
/ufo/1.1.0:
resolution: {integrity: sha512-LQc2s/ZDMaCN3QLpa+uzHUOQ7SdV0qgv3VBXOolQGXTaaZpIur6PwUclF5nN2hNkiTRcUugXd1zFOW3FLJ135Q==}