Skip to content

Commit 055f37b

Browse files
committed
feat(pr): support github merge queue
Signed-off-by: Adam Setch <[email protected]>
1 parent 1ba7d24 commit 055f37b

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

src/renderer/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ export interface GitifyPullRequestReview {
293293

294294
export type GitifyDiscussionState = DiscussionStateReason | 'OPEN' | 'ANSWERED';
295295

296-
export type GitifyPullRequestState = PullRequestState | 'DRAFT';
296+
export type GitifyPullRequestState = PullRequestState | 'DRAFT' | 'MERGE_QUEUE';
297297

298298
export type GitifyIssueState = IssueState | IssueStateReason;
299299

src/renderer/utils/notifications/handlers/pullRequest.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ describe('renderer/utils/notifications/handlers/pullRequest.ts', () => {
349349
const cases = {
350350
CLOSED: 'GitPullRequestClosedIcon',
351351
DRAFT: 'GitPullRequestDraftIcon',
352+
MERGE_QUEUE: 'GitMergeQueueIcon',
352353
MERGED: 'GitMergeIcon',
353354
OPEN: 'GitPullRequestIcon',
354355
} satisfies Record<GitifyPullRequestState, string>;
@@ -368,6 +369,7 @@ describe('renderer/utils/notifications/handlers/pullRequest.ts', () => {
368369
const cases = {
369370
CLOSED: IconColor.RED,
370371
DRAFT: IconColor.GRAY,
372+
MERGE_QUEUE: IconColor.YELLOW,
371373
MERGED: IconColor.PURPLE,
372374
OPEN: IconColor.GREEN,
373375
} satisfies Record<GitifyPullRequestState, IconColor>;

src/renderer/utils/notifications/handlers/pullRequest.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import type { FC } from 'react';
33
import type { OcticonProps } from '@primer/octicons-react';
44
import {
55
GitMergeIcon,
6+
GitMergeQueueIcon,
67
GitPullRequestClosedIcon,
78
GitPullRequestDraftIcon,
89
GitPullRequestIcon,
@@ -22,6 +23,9 @@ import type { FetchPullRequestByNumberQuery } from '../../api/graphql/generated/
2223
import { DefaultHandler, defaultHandler } from './default';
2324
import { getNotificationAuthor } from './utils';
2425

26+
type PullRequestReviews =
27+
FetchPullRequestByNumberQuery['repository']['pullRequest']['reviews']['nodes'];
28+
2529
class PullRequestHandler extends DefaultHandler {
2630
readonly type = 'PullRequest' as const;
2731

@@ -35,6 +39,8 @@ class PullRequestHandler extends DefaultHandler {
3539
let prState: GitifyPullRequestState = pr.state;
3640
if (pr.isDraft) {
3741
prState = 'DRAFT';
42+
} else if (pr.isInMergeQueue) {
43+
prState = 'MERGE_QUEUE';
3844
}
3945

4046
const prComment = pr.comments?.nodes[0];
@@ -64,6 +70,8 @@ class PullRequestHandler extends DefaultHandler {
6470
return GitPullRequestDraftIcon;
6571
case 'CLOSED':
6672
return GitPullRequestClosedIcon;
73+
case 'MERGE_QUEUE':
74+
return GitMergeQueueIcon;
6775
case 'MERGED':
6876
return GitMergeIcon;
6977
default:
@@ -77,6 +85,8 @@ class PullRequestHandler extends DefaultHandler {
7785
return IconColor.GREEN;
7886
case 'CLOSED':
7987
return IconColor.RED;
88+
case 'MERGE_QUEUE':
89+
return IconColor.YELLOW;
8090
case 'MERGED':
8191
return IconColor.PURPLE;
8292
default:
@@ -94,7 +104,7 @@ class PullRequestHandler extends DefaultHandler {
94104
export const pullRequestHandler = new PullRequestHandler();
95105

96106
export function getLatestReviewForReviewers(
97-
reviews: FetchPullRequestByNumberQuery['repository']['pullRequest']['reviews']['nodes'],
107+
reviews: PullRequestReviews,
98108
): GitifyPullRequestReview[] {
99109
if (!reviews.length) {
100110
return null;

0 commit comments

Comments
 (0)