-
Notifications
You must be signed in to change notification settings - Fork 5
/
types.ts
92 lines (79 loc) · 2.06 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import { EmitterWebhookEventName } from "@octokit/webhooks/dist-types/types"
import { MatrixClient } from "matrix-bot-sdk"
import { Probot } from "probot"
import type { AccessDB, TaskDB } from "./db"
import { Logger } from "./logger"
export type PullRequestParams = {
owner: string
repo: string
pull_number: number
}
type GitRef = {
contributor: string
owner: string
repo: string
branch: string
}
type TaskBase<T> = {
tag: T
handleId: string
version: string
timesRequeued: number
timesRequeuedSnapshotBeforeExecution: number
timesExecuted: number
commandDisplay: string
execPath: string
args: string[]
env: Record<string, string>
gitRef: GitRef
repoPath: string
}
export type PullRequestTask = TaskBase<"PullRequestTask"> &
PullRequestParams & {
commentId: number
installationId: number
requester: string
}
export type ApiTask = TaskBase<"ApiTask"> & {
matrixRoom: string
}
export type Task = PullRequestTask | ApiTask
export type CommandOutput = Error | string
type TaskIdParseResult = { date: Date; suffix?: string } | Error
export type State = {
appName: string
version: string
bot: Probot
taskDb: TaskDB
accessDb: AccessDB
getFetchEndpoint: (
installationId: number | null,
) => Promise<{ token: string; url: string }>
log: (str: string) => void
allowedOrganizations: number[]
logger: Logger
repositoryCloneDirectory: string
deployment: { environment: string; container: string } | undefined
matrix: MatrixClient | null
masterToken: string | null
getUniqueId: () => string
getTaskId: () => string
parseTaskId: (id: string) => TaskIdParseResult
nodesAddresses: Record<string, string>
}
export class PullRequestError {
constructor(
public params: PullRequestParams,
public comment: {
body: string
commentId?: number
requester?: string
},
) {}
}
export type GetCommandOptions = { baseEnv: Record<string, string> }
export type Octokit = Awaited<ReturnType<Probot["auth"]>>
export type WebhookEvents = Extract<
EmitterWebhookEventName,
"issue_comment.created"
>