Skip to content

Commit

Permalink
add ReferencedEvent to issue timeline (#788)
Browse files Browse the repository at this point in the history
  • Loading branch information
wd60622 authored Jan 15, 2025
1 parent 345ac95 commit f07037a
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 4 deletions.
17 changes: 17 additions & 0 deletions lua/octo/gh/fragments.lua
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,22 @@ fragment ConnectedEventFragment on ConnectedEvent {
}
}
]]
M.referenced_event = [[
fragment ReferencedEventFragment on ReferencedEvent {
createdAt
actor {
login
}
commit {
__typename
abbreviatedOid
message
repository {
nameWithOwner
}
}
}
]]
M.cross_referenced_event = [[
fragment CrossReferencedEventFragment on CrossReferencedEvent {
createdAt
Expand Down Expand Up @@ -365,6 +381,7 @@ fragment IssueTimelineItemsConnectionFragment on IssueTimelineItemsConnection {
...AssignedEventFragment
...ClosedEventFragment
...ConnectedEventFragment
...ReferencedEventFragment
...CrossReferencedEventFragment
...DemilestonedEventFragment
...IssueCommentFragment
Expand Down
8 changes: 4 additions & 4 deletions lua/octo/gh/graphql.lua
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ M.create_issue_mutation = [[
}
}
}
]] .. fragments.cross_referenced_event .. fragments.issue .. fragments.pull_request .. fragments.connected_event .. fragments.milestoned_event .. fragments.demilestoned_event .. fragments.reaction_groups .. fragments.label_connection .. fragments.label .. fragments.assignee_connection .. fragments.issue_comment .. fragments.assigned_event .. fragments.labeled_event .. fragments.unlabeled_event .. fragments.closed_event .. fragments.reopened_event .. fragments.project_cards .. fragments.issue_timeline_items_connection .. fragments.renamed_title_event .. fragments.issue_information
]] .. fragments.cross_referenced_event .. fragments.issue .. fragments.pull_request .. fragments.connected_event .. fragments.milestoned_event .. fragments.demilestoned_event .. fragments.reaction_groups .. fragments.label_connection .. fragments.label .. fragments.assignee_connection .. fragments.issue_comment .. fragments.assigned_event .. fragments.labeled_event .. fragments.unlabeled_event .. fragments.closed_event .. fragments.reopened_event .. fragments.project_cards .. fragments.issue_timeline_items_connection .. fragments.renamed_title_event .. fragments.issue_information .. fragments.referenced_event

M.close_issue_mutation = [[
mutation {
Expand Down Expand Up @@ -499,7 +499,7 @@ mutation {
}
}
}
]] .. fragments.cross_referenced_event .. fragments.issue .. fragments.pull_request .. fragments.connected_event .. fragments.milestoned_event .. fragments.demilestoned_event .. fragments.label_connection .. fragments.label .. fragments.reaction_groups .. fragments.assignee_connection .. fragments.issue_comment .. fragments.assigned_event .. fragments.labeled_event .. fragments.unlabeled_event .. fragments.closed_event .. fragments.reopened_event .. fragments.issue_timeline_items_connection .. fragments.issue_information .. fragments.renamed_title_event
]] .. fragments.cross_referenced_event .. fragments.issue .. fragments.pull_request .. fragments.connected_event .. fragments.milestoned_event .. fragments.demilestoned_event .. fragments.label_connection .. fragments.label .. fragments.reaction_groups .. fragments.assignee_connection .. fragments.issue_comment .. fragments.assigned_event .. fragments.labeled_event .. fragments.unlabeled_event .. fragments.closed_event .. fragments.reopened_event .. fragments.issue_timeline_items_connection .. fragments.issue_information .. fragments.renamed_title_event .. fragments.referenced_event

-- https://docs.github.com/en/free-pro-team@latest/graphql/reference/mutations#updateissue
M.update_issue_state_mutation = [[
Expand Down Expand Up @@ -537,7 +537,7 @@ M.update_issue_state_mutation = [[
}
}
}
]] .. fragments.cross_referenced_event .. fragments.issue .. fragments.pull_request .. fragments.connected_event .. fragments.milestoned_event .. fragments.demilestoned_event .. fragments.reaction_groups .. fragments.label_connection .. fragments.label .. fragments.assignee_connection .. fragments.issue_comment .. fragments.assigned_event .. fragments.labeled_event .. fragments.unlabeled_event .. fragments.closed_event .. fragments.reopened_event .. fragments.issue_timeline_items_connection .. fragments.issue_information .. fragments.renamed_title_event
]] .. fragments.cross_referenced_event .. fragments.issue .. fragments.pull_request .. fragments.connected_event .. fragments.milestoned_event .. fragments.demilestoned_event .. fragments.reaction_groups .. fragments.label_connection .. fragments.label .. fragments.assignee_connection .. fragments.issue_comment .. fragments.assigned_event .. fragments.labeled_event .. fragments.unlabeled_event .. fragments.closed_event .. fragments.reopened_event .. fragments.issue_timeline_items_connection .. fragments.issue_information .. fragments.renamed_title_event .. fragments.referenced_event

-- https://docs.github.com/en/free-pro-team@latest/graphql/reference/mutations#updatepullrequest
M.update_pull_request_mutation = [[
Expand Down Expand Up @@ -847,7 +847,7 @@ query($endCursor: String) {
}
}
}
]] .. fragments.cross_referenced_event .. fragments.issue .. fragments.pull_request .. fragments.connected_event .. fragments.milestoned_event .. fragments.demilestoned_event .. fragments.reaction_groups .. fragments.label .. fragments.label_connection .. fragments.assignee_connection .. fragments.issue_comment .. fragments.assigned_event .. fragments.labeled_event .. fragments.unlabeled_event .. fragments.closed_event .. fragments.reopened_event .. fragments.project_cards .. fragments.renamed_title_event .. fragments.issue_timeline_items_connection .. fragments.issue_information
]] .. fragments.cross_referenced_event .. fragments.issue .. fragments.pull_request .. fragments.connected_event .. fragments.milestoned_event .. fragments.demilestoned_event .. fragments.reaction_groups .. fragments.label .. fragments.label_connection .. fragments.assignee_connection .. fragments.issue_comment .. fragments.assigned_event .. fragments.labeled_event .. fragments.unlabeled_event .. fragments.closed_event .. fragments.reopened_event .. fragments.project_cards .. fragments.renamed_title_event .. fragments.issue_timeline_items_connection .. fragments.issue_information .. fragments.referenced_event

-- https://docs.github.com/en/graphql/reference/unions#issueorpullrequest
M.issue_kind_query = [[
Expand Down
3 changes: 3 additions & 0 deletions lua/octo/model/octo-buffer.lua
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,9 @@ function OctoBuffer:render_issue()
elseif item.__typename == "CrossReferencedEvent" then
writers.write_cross_referenced_event(self.bufnr, item)
prev_is_event = true
elseif item.__typename == "ReferencedEvent" then
writers.write_referenced_event(self.bufnr, item)
prev_is_event = true
elseif item.__typename == "MilestonedEvent" then
writers.write_milestoned_event(self.bufnr, item)
prev_is_event = true
Expand Down
26 changes: 26 additions & 0 deletions lua/octo/ui/writers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1363,6 +1363,32 @@ local function write_issue_or_pr(bufnr, item)
write_event(bufnr, vt)
end

local write_reference_commit = function(bufnr, commit)
local vt = {}
table.insert(vt, { " ", "OctoTimelineItemHeading" })
table.insert(vt, { commit.message, "OctoTimelineItemHeading" })
table.insert(vt, { " ", "OctoTimelineItemHeading" })
table.insert(vt, { commit.abbreviatedOid, "OctoTimelineItemHeading" })
write_event(bufnr, vt)
end

function M.write_referenced_event(bufnr, item)
local vt = {}
local conf = config.values
table.insert(vt, { conf.timeline_marker .. " ", "OctoTimelineMarker" })
table.insert(vt, { "EVENT: ", "OctoTimelineItemHeading" })
table.insert(vt, {
item.actor.login,
item.actor.login == vim.g.octo_viewer and "OctoUserViewer" or "OctoUser",
})
table.insert(vt, { " added a commit to ", "OctoTimelineItemHeading" })
table.insert(vt, { item.commit.repository.nameWithOwner, "OctoDetailsLabel" })
table.insert(vt, { " that referenced this issue ", "OctoTimelineItemHeading" })
table.insert(vt, { utils.format_date(item.createdAt), "OctoDate" })
write_event(bufnr, vt)
write_reference_commit(bufnr, item.commit)
end

function M.write_cross_referenced_event(bufnr, item)
local vt = {}
local conf = config.values
Expand Down

0 comments on commit f07037a

Please sign in to comment.