Function: forge--update-issue
forge--update-issue is a byte-compiled function defined in
forge-github.el.
Signature
(forge--update-issue ARG &rest ARGS)
Implementations
(forge--update-issue (REPO forge-gitlab-repository) DATA) in `forge-gitlab.el'.
Undocumented
(forge--update-issue (REPO forge-github-repository) DATA &optional BUMP INITIAL-PULL) in `forge-github.el'.
Undocumented
Source Code
;; Defined in ~/.emacs.d/elpa/forge-20260408.1922/forge-github.el
(cl-defmethod forge--update-issue ((repo forge-github-repository) data
&optional bump initial-pull)
(let ((repo-id (oref repo id))
issue-id issue)
(let-alist data
(closql-with-transaction (forge-db)
(setq issue-id (forge--object-id 'forge-issue repo .number))
(setq issue (or (forge-get-issue repo .number)
(closql-insert
(forge-db)
(forge-issue :id issue-id
:repository repo-id
:number .number))))
(oset issue their-id .id)
(oset issue slug (format "#%s" .number))
(oset issue state
(pcase-exhaustive (list .stateReason .state)
('("COMPLETED" "CLOSED") 'completed)
('("NOT_PLANNED" "CLOSED") 'unplanned)
('("DUPLICATE" "CLOSED") 'duplicate)
('("REOPENED" "OPEN") 'open)
('(nil "OPEN") 'open)))
(oset issue author .author.login)
(oset issue title .title)
(oset issue created .createdAt)
(oset issue closed .closedAt)
(oset issue locked-p .locked)
(oset issue milestone (forge--object-id repo-id .milestone.id))
(oset issue body (forge--sanitize-string .body))
(dolist (c .comments)
(let-alist c
(closql-insert
(forge-db)
(forge-issue-post
:id (forge--object-id issue-id .databaseId)
:issue issue-id
:number .databaseId
:author .author.login
:created .createdAt
:updated .updatedAt
:body (forge--sanitize-string .body))
t)))
(forge--update-status repo issue data bump initial-pull))
(forge--set-connections repo issue 'assignees .assignees)
(forge--set-connections repo issue 'labels .labels))
issue))