From ab85598af1549aaa017bb34b04d2adbf5beb18d7 Mon Sep 17 00:00:00 2001 From: Max Savchenko Date: Thu, 7 Nov 2024 15:43:29 +0100 Subject: [PATCH] display auto-merge in pr view --- lua/octo/gh/graphql.lua | 4 ++++ lua/octo/ui/writers.lua | 11 +++++++++++ lua/octo/utils.lua | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/lua/octo/gh/graphql.lua b/lua/octo/gh/graphql.lua index b33d2c06..64cc191f 100644 --- a/lua/octo/gh/graphql.lua +++ b/lua/octo/gh/graphql.lua @@ -1873,6 +1873,10 @@ query($endCursor: String) { } mergeStateStatus mergeable + autoMergeRequest { + enabledBy { login } + mergeMethod + } } } } diff --git a/lua/octo/ui/writers.lua b/lua/octo/ui/writers.lua index 1ed19fcc..f19de761 100644 --- a/lua/octo/ui/writers.lua +++ b/lua/octo/ui/writers.lua @@ -491,6 +491,17 @@ function M.write_details(bufnr, issue, update) table.insert(details, merge_state_vt) end + if not issue.merged and issue.autoMergeRequest ~= vim.NIL then + local auto_merge_vt = { + { "Auto-merge: ", "OctoDetailsLabel" }, + { "ENABLED", "OctoStateApproved" }, + { " by " }, + { issue.autoMergeRequest.enabledBy.login, "OctoUser" }, + { " (" .. utils.auto_merge_method_map[issue.autoMergeRequest.mergeMethod] .. ")" }, + } + table.insert(details, auto_merge_vt) + end + -- changes local changes_vt = { { "Commits: ", "OctoDetailsLabel" }, diff --git a/lua/octo/utils.lua b/lua/octo/utils.lua index e2825002..8a7c68b5 100644 --- a/lua/octo/utils.lua +++ b/lua/octo/utils.lua @@ -121,6 +121,12 @@ M.merge_state_message_map = { UNSTABLE = "! UNSTABLE", } +M.auto_merge_method_map = { + MERGE = "commit", + REBASE = "rebase", + SQUASH = "squash", +} + function M.trim(str) if type(vim.fn.trim) == "function" then return vim.fn.trim(str)