/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ export interface GitHub { query(query: Query): AsyncIterableIterator hasWriteAccess(user: User): Promise repoHasLabel(label: string): Promise createLabel(label: string, color: string, description: string): Promise deleteLabel(label: string): Promise readConfig(path: string): Promise createIssue(owner: string, repo: string, title: string, body: string): Promise releaseContainsCommit(release: string, commit: string): Promise } export interface GitHubIssue extends GitHub { getIssue(): Promise postComment(body: string): Promise deleteComment(id: number): Promise getComments(last?: boolean): AsyncIterableIterator closeIssue(): Promise lockIssue(): Promise setMilestone(milestoneId: number): Promise addLabel(label: string): Promise removeLabel(label: string): Promise addAssignee(assignee: string): Promise getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined> } type SortVar = | 'comments' | 'reactions' | 'reactions-+1' | 'reactions--1' | 'reactions-smile' | 'reactions-thinking_face' | 'reactions-heart' | 'reactions-tada' | 'interactions' | 'created' | 'updated' type SortOrder = 'asc' | 'desc' export type Reactions = { '+1': number '-1': number laugh: number hooray: number confused: number heart: number rocket: number eyes: number } export interface User { name: string isGitHubApp?: boolean } export interface Comment { author: User body: string id: number timestamp: number } export interface Issue { author: User body: string title: string labels: string[] open: boolean locked: boolean number: number numComments: number reactions: Reactions milestoneId: number | null assignee?: string createdAt: number updatedAt: number closedAt?: number } export interface Query { q: string sort?: SortVar order?: SortOrder }