Skip to content

Commit

Permalink
Merge pull request #666 from macovsky/display-merge-state
Browse files Browse the repository at this point in the history
display merge state in PR
  • Loading branch information
Alvaro Muñoz authored Nov 4, 2024
2 parents 3f640db + c2cde4f commit 87c1a07
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 5 deletions.
2 changes: 2 additions & 0 deletions lua/octo/gh/graphql.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1871,6 +1871,8 @@ query($endCursor: String) {
statusCheckRollup {
state
}
mergeStateStatus
mergeable
}
}
}
Expand Down
22 changes: 22 additions & 0 deletions lua/octo/ui/writers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,7 @@ function M.write_details(bufnr, issue, update)
table.insert(details, decision_vt)
end

-- checks
if issue.statusCheckRollup and issue.statusCheckRollup ~= vim.NIL then
local state = issue.statusCheckRollup.state
local checks_vt = {
Expand All @@ -469,6 +470,27 @@ function M.write_details(bufnr, issue, update)
table.insert(details, checks_vt)
end

-- merge state
if not issue.merged and issue.mergeable then
local merge_state_vt = {
{ "Merge: ", "OctoDetailsLabel" },
}

if issue.mergeable == "MERGEABLE" then
table.insert(
merge_state_vt,
{ utils.merge_state_message_map[issue.mergeStateStatus], utils.merge_state_hl_map[issue.mergeStateStatus] }
)
else
table.insert(
merge_state_vt,
{ utils.mergeable_message_map[issue.mergeable], utils.mergeable_hl_map[issue.mergeable] }
)
end

table.insert(details, merge_state_vt)
end

-- changes
local changes_vt = {
{ "Commits: ", "OctoDetailsLabel" },
Expand Down
44 changes: 39 additions & 5 deletions lua/octo/utils.lua
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,45 @@ M.checks_hl_map = {
}

M.checks_message_map = {
ERROR = "× errored",
EXPECTED = " expected",
FAILURE = "× failed",
PENDING = " pending",
SUCCESS = "✓ passed",
ERROR = "× ERRORED",
EXPECTED = " EXPECTED",
FAILURE = "× FAILED",
PENDING = " PENDING",
SUCCESS = "✓ PASSED",
}

M.mergeable_hl_map = {
CONFLICTING = "OctoStateDismissed",
MERGEABLE = "OctoStateApproved",
UNKNOWN = "OctoStatePending",
}

M.mergeable_message_map = {
CONFLICTING = "× CONFLICTING",
MERGEABLE = "✓ MERGEABLE",
UNKNOWN = " PENDING",
}

M.merge_state_hl_map = {
BEHIND = "OctoNormal",
BLOCKED = "OctoStateDismissed",
CLEAN = "OctoStateApproved",
DIRTY = "OctoStateDismissed",
DRAFT = "OctoStateDraftFloat",
HAS_HOOKS = "OctoStateApproved",
UNKNOWN = "OctoStatePending",
UNSTABLE = "OctoStateDismissed",
}

M.merge_state_message_map = {
BEHIND = "- OUT-OF-DATE",
BLOCKED = "× BLOCKED",
CLEAN = "✓ CLEAN",
DIRTY = "× DIRTY",
DRAFT = "= DRAFT",
HAS_HOOKS = "✓ HAS-HOOKS",
UNKNOWN = " PENDING",
UNSTABLE = "! UNSTABLE",
}

function M.trim(str)
Expand Down

0 comments on commit 87c1a07

Please sign in to comment.