mirror of
https://github.com/matrix-org/matrix-hookshot.git
synced 2025-03-10 13:17:08 +00:00
Add support for reopened GitLab MR (#935)
* Add support for reopened GitLab MR Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Add changelog Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> --------- Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
This commit is contained in:
parent
6b039c94bf
commit
e5705e74c0
1
changelog.d/935.feature
Normal file
1
changelog.d/935.feature
Normal file
@ -0,0 +1 @@
|
||||
Add support for reopened GitLab MR.
|
@ -46,6 +46,7 @@ the events marked as default below will be enabled. Otherwise, this is ignored.
|
||||
- merge_request.close *
|
||||
- merge_request.merge *
|
||||
- merge_request.open *
|
||||
- merge_request.reopen *
|
||||
- merge_request.review.comments *
|
||||
- merge_request.review *
|
||||
- merge_request.review.individual
|
||||
|
@ -344,6 +344,12 @@ export class Bridge {
|
||||
(c, data) => c.onMergeRequestOpened(data),
|
||||
);
|
||||
|
||||
this.bindHandlerToQueue<IGitLabWebhookMREvent, GitLabRepoConnection>(
|
||||
"gitlab.merge_request.reopen",
|
||||
(data) => connManager.getConnectionsForGitLabRepo(data.project.path_with_namespace),
|
||||
(c, data) => c.onMergeRequestReopened(data),
|
||||
);
|
||||
|
||||
this.bindHandlerToQueue<IGitLabWebhookMREvent, GitLabRepoConnection>(
|
||||
"gitlab.merge_request.close",
|
||||
(data) => connManager.getConnectionsForGitLabRepo(data.project.path_with_namespace),
|
||||
|
@ -63,6 +63,7 @@ export type GitLabRepoResponseItem = GetConnectionsResponseItem<GitLabRepoConnec
|
||||
|
||||
type AllowedEventsNames =
|
||||
"merge_request.open" |
|
||||
"merge_request.reopen" |
|
||||
"merge_request.close" |
|
||||
"merge_request.merge" |
|
||||
"merge_request.review" |
|
||||
@ -80,6 +81,7 @@ type AllowedEventsNames =
|
||||
|
||||
const AllowedEvents: AllowedEventsNames[] = [
|
||||
"merge_request.open",
|
||||
"merge_request.reopen",
|
||||
"merge_request.close",
|
||||
"merge_request.merge",
|
||||
"merge_request.review",
|
||||
@ -565,6 +567,22 @@ export class GitLabRepoConnection extends CommandConnection<GitLabRepoConnection
|
||||
});
|
||||
}
|
||||
|
||||
public async onMergeRequestReopened(event: IGitLabWebhookMREvent) {
|
||||
if (this.hookFilter.shouldSkip('merge_request', 'merge_request.reopen') || !this.matchesLabelFilter(event)) {
|
||||
return;
|
||||
}
|
||||
log.info(`onMergeRequestReopened ${this.roomId} ${this.path} #${event.object_attributes.iid}`);
|
||||
this.validateMREvent(event);
|
||||
const orgRepoName = event.project.path_with_namespace;
|
||||
const content = `**${event.user.username}** reopened MR [${orgRepoName}#${event.object_attributes.iid}](${event.object_attributes.url}): "${event.object_attributes.title}"`;
|
||||
await this.intent.sendEvent(this.roomId, {
|
||||
msgtype: "m.notice",
|
||||
body: content,
|
||||
formatted_body: md.renderInline(content),
|
||||
format: "org.matrix.custom.html",
|
||||
});
|
||||
}
|
||||
|
||||
public async onMergeRequestClosed(event: IGitLabWebhookMREvent) {
|
||||
if (this.hookFilter.shouldSkip('merge_request', 'merge_request.close') || !this.matchesLabelFilter(event)) {
|
||||
return;
|
||||
|
@ -97,6 +97,7 @@ describe("GitLabRepoConnection", () => {
|
||||
path: "bar/baz",
|
||||
enableHooks: [
|
||||
"merge_request.open",
|
||||
"merge_request.reopen",
|
||||
"merge_request.close",
|
||||
"merge_request.merge",
|
||||
"merge_request.review",
|
||||
|
@ -97,6 +97,7 @@ const ConnectionConfiguration: FunctionComponent<ConnectionConfigurationProps<ne
|
||||
<EventHookCheckbox enabledHooks={enabledHooks} hookEventName="merge_request" onChange={toggleEnabledHook}>Merge requests</EventHookCheckbox>
|
||||
<ul>
|
||||
<EventHookCheckbox enabledHooks={enabledHooks} parentEvent="merge_request" hookEventName="merge_request.open" onChange={toggleEnabledHook}>Opened</EventHookCheckbox>
|
||||
<EventHookCheckbox enabledHooks={enabledHooks} parentEvent="merge_request" hookEventName="merge_request.reopen" onChange={toggleEnabledHook}>Reopened</EventHookCheckbox>
|
||||
<EventHookCheckbox enabledHooks={enabledHooks} parentEvent="merge_request" hookEventName="merge_request.close" onChange={toggleEnabledHook}>Closed</EventHookCheckbox>
|
||||
<EventHookCheckbox enabledHooks={enabledHooks} parentEvent="merge_request" hookEventName="merge_request.merge" onChange={toggleEnabledHook}>Merged</EventHookCheckbox>
|
||||
<EventHookCheckbox enabledHooks={enabledHooks} parentEvent="merge_request" hookEventName="merge_request.review" onChange={toggleEnabledHook}>Completed review</EventHookCheckbox>
|
||||
|
Loading…
x
Reference in New Issue
Block a user