Feat: Adds Ability to Merge MR (#147)

This adds the ability to merge an MR from within `gitlab.nvim` directly. If the reviewer is open, it'll be closed automatically. Users may configure whether they'd like to squash commits on the merge, as well as whether they'd like to delete the original source branch on a merge.

If squashing, users are prompted to provide an optional custom squash message for the squash commit.
This commit is contained in:
Harrison (Harry) Cramer
2023-12-17 14:28:21 -05:00
committed by GitHub
parent e254100a72
commit 64b36ac51d
12 changed files with 232 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ local server = require("gitlab.server")
local state = require("gitlab.state")
local reviewer = require("gitlab.reviewer")
local discussions = require("gitlab.actions.discussions")
local merge = require("gitlab.actions.merge")
local summary = require("gitlab.actions.summary")
local assignees_and_reviewers = require("gitlab.actions.assignees_and_reviewers")
local comment = require("gitlab.actions.comment")
@@ -27,7 +28,7 @@ return {
discussions.initialize_discussions() -- place signs / diagnostics for discussions in reviewer
end,
-- Global Actions 🌎
summary = async.sequence({ info }, summary.summary),
summary = async.sequence({ u.merge(info, { refresh = true }) }, summary.summary),
approve = async.sequence({ info }, approvals.approve),
revoke = async.sequence({ info }, approvals.revoke),
add_reviewer = async.sequence({ info, project_members }, assignees_and_reviewers.add_reviewer),
@@ -42,7 +43,11 @@ return {
review = async.sequence({ u.merge(info, { refresh = true }), revisions }, function()
reviewer.open()
end),
close_review = function()
reviewer.close()
end,
pipeline = async.sequence({ info }, pipeline.open),
merge = async.sequence({ u.merge(info, { refresh = true }) }, merge.merge),
-- Discussion Tree Actions 🌴
toggle_discussions = async.sequence({ info }, discussions.toggle),
edit_comment = async.sequence({ info }, discussions.edit_comment),