From 23eae91737341d5ef41d4ad91b2ed7f083c054e4 Mon Sep 17 00:00:00 2001 From: Will Hunt Date: Mon, 12 Sep 2022 11:51:04 +0100 Subject: [PATCH] Support notifying when a GitLab MR is ready for review (#480) * Support ready for review GitLab * Create 480.feature * Change event name * Fix name * Fix typo --- changelog.d/480.feature | 1 + src/Bridge.ts | 6 +++ src/Connections/GitlabRepo.ts | 38 +++++++++++++++++-- src/Gitlab/WebhookTypes.ts | 6 +++ .../roomConfig/GitlabRepoConfig.tsx | 1 + 5 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 changelog.d/480.feature diff --git a/changelog.d/480.feature b/changelog.d/480.feature new file mode 100644 index 00000000..37e61f68 --- /dev/null +++ b/changelog.d/480.feature @@ -0,0 +1 @@ +Ready/draft state changes for GitLab merge requests are now reported. diff --git a/src/Bridge.ts b/src/Bridge.ts index 7a0e2dd2..9651a1e7 100644 --- a/src/Bridge.ts +++ b/src/Bridge.ts @@ -358,6 +358,12 @@ export class Bridge { (c, data) => c.onMergeRequestReviewed(data), ); + this.bindHandlerToQueue( + "gitlab.merge_request.update", + (data) => connManager.getConnectionsForGitLabRepo(data.project.path_with_namespace), + (c, data) => c.onMergeRequestUpdate(data), + ); + this.bindHandlerToQueue( "gitlab.release.create", (data) => connManager.getConnectionsForGitLabRepo(data.project.path_with_namespace), diff --git a/src/Connections/GitlabRepo.ts b/src/Connections/GitlabRepo.ts index 5296e91d..1683e701 100644 --- a/src/Connections/GitlabRepo.ts +++ b/src/Connections/GitlabRepo.ts @@ -7,7 +7,7 @@ import { MatrixMessageContent } from "../MatrixEvent"; import markdown from "markdown-it"; import LogWrapper from "../LogWrapper"; import { BridgeConfigGitLab, GitLabInstance } from "../Config/Config"; -import { IGitLabWebhookMREvent, IGitLabWebhookNoteEvent, IGitLabWebhookPushEvent, IGitLabWebhookReleaseEvent, IGitLabWebhookTagPushEvent, IGitLabWebhookWikiPageEvent } from "../Gitlab/WebhookTypes"; +import { IGitlabMergeRequest, IGitLabWebhookMREvent, IGitLabWebhookNoteEvent, IGitLabWebhookPushEvent, IGitLabWebhookReleaseEvent, IGitLabWebhookTagPushEvent, IGitLabWebhookWikiPageEvent } from "../Gitlab/WebhookTypes"; import { CommandConnection } from "./CommandConnection"; import { Connection, IConnection, IConnectionState, InstantiateConnectionOpts, ProvisionConnectionOpts } from "./IConnection"; import { GetConnectionsResponseItem } from "../provisioning/api"; @@ -50,6 +50,7 @@ type AllowedEventsNames = "merge_request.close" | "merge_request.merge" | "merge_request.review" | + "merge_request.ready_for_review" | "merge_request.review.comments" | `merge_request.${string}` | "merge_request" | @@ -65,6 +66,7 @@ const AllowedEvents: AllowedEventsNames[] = [ "merge_request.close", "merge_request.merge", "merge_request.review", + "merge_request.ready_for_review", "merge_request.review.comments", "merge_request", "tag_push", @@ -440,6 +442,38 @@ export class GitLabRepoConnection extends CommandConnectionClosed Merged Reviewed + Ready for review Pushes Tag pushes