Skip to content

Commit 7454f16

Browse files
committed
Support setting milestone during issue creation
Sadly this is not supported when creating a Github pull-request. Gitlab support will follow later.
1 parent 49c8a78 commit 7454f16

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

lisp/forge-github.el

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,12 @@
734734
(pcase-let ((`(,title . ,body) (forge--post-buffer-text)))
735735
`((title . ,title)
736736
(body . ,body)
737+
,@(and forge--buffer-milestone
738+
`((milestone
739+
. ,(caar (forge-sql [:select [number]
740+
:from milestone
741+
:where (= title $s1)]
742+
forge--buffer-milestone)))))
737743
,@(and forge--buffer-labels
738744
`((labels . ,(vconcat forge--buffer-labels))))
739745
,@(and forge--buffer-assignees

lisp/forge-post.el

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ an error."
112112
(defvar-local forge--buffer-post-object nil)
113113
(defvar-local forge--buffer-template nil)
114114
(defvar-local forge--buffer-category nil)
115+
(defvar-local forge--buffer-milestone nil)
115116
(defvar-local forge--buffer-labels nil)
116117
(defvar-local forge--buffer-assignees nil)
117118
(defvar-local forge--buffer-base-branch nil)
@@ -249,6 +250,7 @@ an error."
249250
(and (forge-github-repository-p (forge-get-repository :tracked))
250251
(string-prefix-p "new-"
251252
(file-name-nondirectory buffer-file-name))))
253+
("-m" forge-new-topic-set-milestone)
252254
("-l" forge-new-topic-set-labels)
253255
("-a" forge-new-topic-set-assignees)
254256
("-d" forge-new-pullreq-toggle-draft)]
@@ -286,6 +288,15 @@ an error."
286288
(format "%s %s" name value)
287289
(format "%s" name)))))))
288290

291+
(transient-define-infix forge-new-topic-set-milestone ()
292+
"Set milestone for the topic being created."
293+
:class 'forge--new-topic-set-slot-command
294+
:variable 'forge--buffer-milestone
295+
:name "milestone"
296+
:reader (lambda (&rest _) (forge-read-topic-milestone))
297+
:formatter (lambda (milestone) (propertize milestone 'face 'forge-topic-label))
298+
:if (lambda () (equal (file-name-nondirectory buffer-file-name) "new-issue")))
299+
289300
(transient-define-infix forge-new-topic-set-labels ()
290301
"Set labels for the topic being created."
291302
:class 'forge--new-topic-set-slot-command

0 commit comments

Comments
 (0)