Closed
Description
The documentation for forge-edit-post-hook
stipulates that forge-post-edit-action
should be set to, for example new-pullreq
. However the value of forge-post-edit-action
when a hook is executed after forge-create-pullreq-show-diff
when creating a new pull request. I expected the value of forge-post-edit-action
to be new-pullreq
in such a case.
To reproduce, M-x toggle-debug-on-error RET
, then evaluate the following snippet
(defun my-hook ()
(unless (eq forge-edit-post-action 'new-pullreq)
(error (format "forge-edit-post-action %s current-buffer %s"
forge-edit-post-action (current-buffer)))))
(add-hook 'forge-edit-post-hook #'my-hook 99)
and then start creating of a new pull request. The following backtrace is produced:
Debugger entered--Lisp error: (error "forge-edit-post-action nil current-buffer magit-diff(emacs-exordium/master...pkryger/master): .emacs.d")
transient--exit-and-debug(error (error "forge-edit-post-action nil current-buffer magit-diff(emacs-exordium/master...pkryger/master): .emacs.d"))
error("forge-edit-post-action nil current-buffer magit-diff(emacs-exordium/master...pkryger/master): .emacs.d")
(if (eq forge-edit-post-action 'new-pullreq) nil (error (format "forge-edit-post-action %s" forge-edit-post-action)))
my-hook()
forge--setup-post-buffer(new-pullreq forge--submit-create-pullreq "new-pullreq" "Create new pull-request on %p" ((forge--buffer-base-branch "emacs-exordium/master") (forge--buffer-head-branch "pkryger/master") (forge--buffer-template ((type . forge-pullreq)))))
#<subr forge-create-pullreq>("pkryger/master" "emacs-exordium/master")
apply(#<subr forge-create-pullreq> ("pkryger/master" "emacs-exordium/master"))
#f(compiled-function (fn &rest args) (interactive nil) #<bytecode 0x97e024592f3b852>)(#<subr forge-create-pullreq> "pkryger/master" "emacs-exordium/master")
funcall-interactively(#f(compiled-function (fn &rest args) (interactive nil) #<bytecode 0x97e024592f3b852>) #<subr forge-create-pullreq> "pkryger/master" "emacs-exordium/master")
apply(funcall-interactively #f(compiled-function (fn &rest args) (interactive nil) #<bytecode 0x97e024592f3b852>) (#<subr forge-create-pullreq> "pkryger/master" "emacs-exordium/master"))
#[128 "\302\303\304!\203\13\0\305\202\f\0\306\300\3#\207" [#[385 "\305\306\300\301\303$\216\307\34\302\205\21\0\310\302\311\"\211\205.\0\310\302\312\"\206.\0\310\302\313\"\206.\0\310\1\312\"\206.\0\310\1\313\"\211\203:\0\314\1\5\5#\202>\0\314\4\4\"*\207" [(#0) #s(transient-prefix #s(transient-prefix eieio--unbound forge-dispatch eieio--unbound eieio--unbound eieio--unbound eieio--unbound nil nil nil 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) nil) forge-dispatch 4 eieio--unbound nil eieio--unbound nil nil (nil) 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) transient--post-exit) #s(transient-suffix #s(transient-column #s(transient-columns nil 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil #[0 "\300\301!\203\10\0\302\207\303\207" [derived-mode-p forge-repository-list-mode transient-inapt-suffix forge-suffix-active] 2] #[0 "\301\302!\206\f\0\303\10\304\"\305=\207" [transient--prefix derived-mode-p forge-repository-list-mode eieio-oref command forge-topic-menu] 3] nil nil nil nil nil nil nil nil nil "m s" forge-topic-menu transient--do-replace " %k %d" "edit" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil (forge-notifications-mode forge-repository-list-mode) nil forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-topics-menu] 3] nil nil nil nil nil nil nil nil nil "m f" forge-topics-menu transient--do-replace " %k %d" "filter" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil t forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-dispatch] 3] nil nil nil nil nil nil nil nil nil "m d" forge-dispatch transient--do-replace " %k %d" "dispatch" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-configure] 3] nil nil nil nil nil nil nil nil nil "m c" forge-configure transient--do-replace " %k %d" "configure" nil nil nil) "" "") nil "Menu" nil nil eieio--unbound) #s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "f f" forge-pull eieio--unbound " %k %d" "all topics" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil #[0 "\300\301!\205\10\0\302 \207" [forge-get-repository :tracked? forge--get-github-repository] 2] nil nil nil nil nil nil nil nil "f t" forge-pull-topic eieio--unbound " %k %d" "one topic" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "f n" forge-pull-notifications eieio--unbound " %k %d" "notifications" nil nil nil)) nil "Fetch" nil nil eieio--unbound) #5 #s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "/a" forge-add-repository eieio--unbound " %k %d" #[0 "\300\301!\211\203\20\0\302\1\303\"\304=\203\22\0\305\207\306\207" [forge-get-repository :stub? eieio-oref condition :tracked "track some repo" "track this repository"] 4] nil nil nil)) nil #[0 "\300\301!\203\10\0\302\207\303 \204\22\0\304 \203\24\0\305\207\306\207" [forge-get-repository :tracked? "Actions" magit-gitdir forge-repository-at-point "Forge does not yet track this repository" "Not inside a Git repository"] 2] nil nil eieio--unbound)) nil nil nil nil eieio--unbound) 1 #[0 "\300\301!\207" [forge-get-repository :tracked?] 2] nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c d" forge-create-discussion eieio--unbound " %k %d" "discussion" nil nil nil) #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c i" forge-create-issue eieio--unbound " %k %d" "issue" nil nil nil) #4 #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c f" forge-fork eieio--unbound " %k %d" "fork or remote" nil nil nil)) nil "Create" nil nil eieio--unbound) 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c p" forge-create-pullreq eieio--unbound " %k %d" "pull-request" nil nil nil) forge-create-pullreq debugger make-closure #[0 "\303\301\304\"\211\203\20\0\305\306!\210\211\302!\210\210\3029\203(\0\307\302K\300\242\"\211\302K=\204'\0\302\1M\210\210\310\301\304\311#\207" [V0 V1 V2 eieio-oref unwind-suffix transient--debug unwind-command advice--remove-function eieio-oset nil] 4] transient--exit-and-debug eieio-oref parent advice advice* apply] 8 "\n\n(fn FN &rest ARGS)" nil] '#[257 "\305C\306\307\2\300\301\303%\216\310\34\302\205\24\0\311\302\312\"\211\205#\0\311\302\313\"\206#\0\311\1\313\"\211\203.\0\211\314\5\"\2021\0\314\4!)\266\202\1\315\240)\210\207" [(#0) #s(transient-prefix #s(transient-prefix eieio--unbound forge-dispatch eieio--unbound eieio--unbound eieio--unbound eieio--unbound nil nil nil 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) nil) forge-dispatch 4 eieio--unbound nil eieio--unbound nil nil (nil) 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) transient--post-exit) #s(transient-suffix #s(transient-column #s(transient-columns nil 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil #[0 "\300\301!\203\10\0\302\207\303\207" [derived-mode-p forge-repository-list-mode transient-inapt-suffix forge-suffix-active] 2] #[0 "\301\302!\206\f\0\303\10\304\"\305=\207" [transient--prefix derived-mode-p forge-repository-list-mode eieio-oref command forge-topic-menu] 3] nil nil nil nil nil nil nil nil nil "m s" forge-topic-menu transient--do-replace " %k %d" "edit" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil (forge-notifications-mode forge-repository-list-mode) nil forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-topics-menu] 3] nil nil nil nil nil nil nil nil nil "m f" forge-topics-menu transient--do-replace " %k %d" "filter" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil t forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-dispatch] 3] nil nil nil nil nil nil nil nil nil "m d" forge-dispatch transient--do-replace " %k %d" "dispatch" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-configure] 3] nil nil nil nil nil nil nil nil nil "m c" forge-configure transient--do-replace " %k %d" "configure" nil nil nil) "" "") nil "Menu" nil nil eieio--unbound) #s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "f f" forge-pull eieio--unbound " %k %d" "all topics" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil #[0 "\300\301!\205\10\0\302 \207" [forge-get-repository :tracked? forge--get-github-repository] 2] nil nil nil nil nil nil nil nil "f t" forge-pull-topic eieio--unbound " %k %d" "one topic" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "f n" forge-pull-notifications eieio--unbound " %k %d" "notifications" nil nil nil)) nil "Fetch" nil nil eieio--unbound) #5 #s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "/a" forge-add-repository eieio--unbound " %k %d" #[0 "\300\301!\211\203\20\0\302\1\303\"\304=\203\22\0\305\207\306\207" [forge-get-repository :stub? eieio-oref condition :tracked "track some repo" "track this repository"] 4] nil nil nil)) nil #[0 "\300\301!\203\10\0\302\207\303 \204\22\0\304 \203\24\0\305\207\306\207" [forge-get-repository :tracked? "Actions" magit-gitdir forge-repository-at-point "Forge does not yet track this repository" "Not inside a Git repository"] 2] nil nil eieio--unbound)) nil nil nil nil eieio--unbound) 1 #[0 "\300\301!\207" [forge-get-repository :tracked?] 2] nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c d" forge-create-discussion eieio--unbound " %k %d" "discussion" nil nil nil) #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c i" forge-create-issue eieio--unbound " %k %d" "issue" nil nil nil) #4 #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c f" forge-fork eieio--unbound " %k %d" "fork or remote" nil nil nil)) nil "Create" nil nil eieio--unbound) 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c p" forge-create-pullreq eieio--unbound " %k %d" "pull-request" nil nil nil) forge-create-pullreq debugger t make-closure #[0 "\300\242\2052\0\304\302\305\"\211\203\25\0\306\307!\210\211\303!\210\210\3039\203-\0\310\303K\301\242\"\211\303K=\204,\0\303\1M\210\210\311\302\305\312#\207" [V0 V1 V2 V3 eieio-oref unwind-suffix transient--debug unwind-interactive advice--remove-function eieio-oset nil] 4] transient--exit-and-debug eieio-oref parent advice* advice-eval-interactive-spec nil] 8 "\n\n(fn SPEC)"] apply called-interactively-p any funcall-interactively funcall] 5 cconv--interactive-helper](#<subr forge-create-pullreq> "pkryger/master" "emacs-exordium/master")
apply(#[128 "\302\303\304!\203\13\0\305\202\f\0\306\300\3#\207" [#[385 "\305\306\300\301\303$\216\307\34\302\205\21\0\310\302\311\"\211\205.\0\310\302\312\"\206.\0\310\302\313\"\206.\0\310\1\312\"\206.\0\310\1\313\"\211\203:\0\314\1\5\5#\202>\0\314\4\4\"*\207" [(#0) #s(transient-prefix #s(transient-prefix eieio--unbound forge-dispatch eieio--unbound eieio--unbound eieio--unbound eieio--unbound nil nil nil 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) nil) forge-dispatch 4 eieio--unbound nil eieio--unbound nil nil (nil) 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) transient--post-exit) #s(transient-suffix #s(transient-column #s(transient-columns nil 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil ... nil nil nil nil eieio--unbound) 1 #[0 "\300\301!\207" [forge-get-repository :tracked?] 2] nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c d" forge-create-discussion eieio--unbound " %k %d" "discussion" nil nil nil) #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c i" forge-create-issue eieio--unbound " %k %d" "issue" nil nil nil) #4 #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c f" forge-fork eieio--unbound " %k %d" "fork or remote" nil nil nil)) nil "Create" nil nil eieio--unbound) 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c p" forge-create-pullreq eieio--unbound " %k %d" "pull-request" nil nil nil) forge-create-pullreq debugger make-closure #[0 "\303\301\304\"\211\203\20\0\305\306!\210\211\302!\210\210\3029\203(\0\307\302K\300\242\"\211\302K=\204'\0\302\1M\210\210\310\301\304\311#\207" [V0 V1 V2 eieio-oref unwind-suffix transient--debug unwind-command advice--remove-function eieio-oset nil] 4] transient--exit-and-debug eieio-oref parent advice advice* apply] 8 "\n\n(fn FN &rest ARGS)" nil] '#[257 "\305C\306\307\2\300\301\303%\216\310\34\302\205\24\0\311\302\312\"\211\205#\0\311\302\313\"\206#\0\311\1\313\"\211\203.\0\211\314\5\"\2021\0\314\4!)\266\202\1\315\240)\210\207" [(#0) #s(transient-prefix #s(transient-prefix eieio--unbound forge-dispatch eieio--unbound eieio--unbound eieio--unbound eieio--unbound nil nil nil 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) nil) forge-dispatch 4 eieio--unbound nil eieio--unbound nil nil (nil) 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) transient--post-exit) #s(transient-suffix #s(transient-column #s(transient-columns nil 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil ... nil nil nil nil eieio--unbound) 1 #[0 "\300\301!\207" [forge-get-repository :tracked?] 2] nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c d" forge-create-discussion eieio--unbound " %k %d" "discussion" nil nil nil) #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c i" forge-create-issue eieio--unbound " %k %d" "issue" nil nil nil) #4 #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c f" forge-fork eieio--unbound " %k %d" "fork or remote" nil nil nil)) nil "Create" nil nil eieio--unbound) 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c p" forge-create-pullreq eieio--unbound " %k %d" "pull-request" nil nil nil) forge-create-pullreq debugger t make-closure #[0 "\300\242\2052\0\304\302\305\"\211\203\25\0\306\307!\210\211\303!\210\210\3039\203-\0\310\303K\301\242\"\211\303K=\204,\0\303\1M\210\210\311\302\305\312#\207" [V0 V1 V2 V3 eieio-oref unwind-suffix transient--debug unwind-interactive advice--remove-function eieio-oset nil] 4] transient--exit-and-debug eieio-oref parent advice* advice-eval-interactive-spec nil] 8 "\n\n(fn SPEC)"] apply called-interactively-p any funcall-interactively funcall] 5 cconv--interactive-helper] #<subr forge-create-pullreq> ("pkryger/master" "emacs-exordium/master"))
forge-create-pullreq("pkryger/master" "emacs-exordium/master")
funcall-interactively(forge-create-pullreq "pkryger/master" "emacs-exordium/master")
command-execute(forge-create-pullreq)
The output of M-x magit-version RET
Magit 20250605.1750 [>= 20250605.1750], Transient 20250609.1609, Forge 20250609.1016, Git 2.49.0, Emacs 30.1.90, darwin
Metadata
Metadata
Assignees
Labels
No labels