Bugfix: Updates Diff Hashes (#106)

Rather than using branch names we are using the hashes provided directly in the Gitlab API response, to compare the point at which the branch diverged from the target to the head commit. We are additionally flashing a warning if the MR contains a merge conflict.
This commit is contained in:
Harrison (Harry) Cramer
2023-11-20 07:19:20 -05:00
committed by GitHub
parent b1b3448dcb
commit b8c386ac6b
5 changed files with 78 additions and 12 deletions

View File

@@ -22,6 +22,9 @@ M.run_job = function(endpoint, method, body, callback)
args = args,
on_stdout = function(_, output)
vim.defer_fn(function()
if output == nil then
return
end
local data_ok, data = pcall(vim.json.decode, output)
if not data_ok then
local msg = string.format("Failed to parse JSON from %s endpoint", endpoint)

View File

@@ -10,8 +10,19 @@ local M = {
}
M.open = function()
vim.api.nvim_command(string.format("DiffviewOpen %s", state.INFO.target_branch))
local diff_refs = state.INFO.diff_refs
if diff_refs == nil then
u.notify("Gitlab did not provide diff refs required to review this MR", vim.log.levels.ERROR)
return
end
vim.api.nvim_command(string.format("DiffviewOpen %s..%s", diff_refs.base_sha, diff_refs.head_sha))
M.tabnr = vim.api.nvim_get_current_tabpage()
if state.INFO.has_conflicts then
u.notify("This merge request has conflicts!", vim.log.levels.WARN)
end
local group = vim.api.nvim_create_augroup("gitlab.diffview.autocommand.close", {})
vim.api.nvim_create_autocmd("User", {
pattern = { "DiffviewViewClosed" },