Function: forge--update-pullreq
forge--update-pullreq is a byte-compiled function defined in
forge-github.el.
Signature
(forge--update-pullreq ARG &rest ARGS)
Implementations
(forge--update-pullreq (REPO forge-gitlab-repository) DATA) in `forge-gitlab.el'.
Undocumented
(forge--update-pullreq (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-pullreq ((repo forge-github-repository) data
&optional bump initial-pull)
(let ((repo-id (oref repo id))
pullreq-id pullreq)
(let-alist data
(closql-with-transaction (forge-db)
(setq pullreq-id (forge--object-id 'forge-pullreq repo .number))
(setq pullreq (or (forge-get-pullreq repo .number)
(closql-insert
(forge-db)
(forge-pullreq :id pullreq-id
:repository repo-id
:number .number))))
(oset pullreq their-id .id)
(oset pullreq slug (format "#%s" .number))
(oset pullreq state (pcase-exhaustive .state
("MERGED" 'merged)
("CLOSED" 'rejected)
("OPEN" 'open)))
(oset pullreq author .author.login)
(oset pullreq title .title)
(oset pullreq created .createdAt)
(oset pullreq closed .closedAt)
(oset pullreq merged .mergedAt)
(oset pullreq draft-p .isDraft)
(oset pullreq locked-p .locked)
(oset pullreq editable-p .maintainerCanModify)
(oset pullreq cross-repo-p .isCrossRepository)
(oset pullreq base-ref .baseRef.name)
(oset pullreq base-rev .baseRefOid)
(oset pullreq base-repo .baseRef.repository.nameWithOwner)
(oset pullreq head-ref .headRef.name)
(oset pullreq head-rev .headRefOid)
(oset pullreq head-user .headRef.repository.owner.login)
(oset pullreq head-repo .headRef.repository.nameWithOwner)
(oset pullreq milestone (forge--object-id repo-id .milestone.id))
(oset pullreq body (forge--sanitize-string .body))
(dolist (p .comments)
(let-alist p
(closql-insert
(forge-db)
(forge-pullreq-post
:id (forge--object-id pullreq-id .databaseId)
:pullreq pullreq-id
:number .databaseId
:author .author.login
:created .createdAt
:updated .updatedAt
:body (forge--sanitize-string .body))
t)))
(forge--update-status repo pullreq data bump initial-pull))
(forge--set-connections repo pullreq 'assignees .assignees)
(forge--set-connections repo pullreq 'review-requests
(mapcar (##alist-get 'requestedReviewer %)
.reviewRequests))
(forge--set-connections repo pullreq 'labels .labels))
pullreq))