feat(gs/emacs): Switch to org-tracker

Work is now using JIRA instead of Clubhouse, so I've started writing
org-tracker[0] as a pluggable-backend version of org-clubhouse (I'll
probably add github issue support as well!). This switches my personal
config to use that instead of org-clubhouse, including the
checkout-branch-with-ticket-id stuff I had locally.

[0]: https://github.com/glittershark/org-tracker

Change-Id: I3cf72d6640b155c92ca9ddd1d9d9b5167367951a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3180
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This commit is contained in:
Griffin Smith 2021-06-05 17:04:45 +02:00 committed by grfn
parent 42c3da7881
commit 263958e4d3
4 changed files with 35 additions and 33 deletions

View file

@ -353,7 +353,7 @@ private/hlissner/snippets."
:desc "Store link" :n "l" #'org-store-link :desc "Store link" :n "l" #'org-store-link
:desc "Browse notes" :n "N" #'+hlissner/browse-notes :desc "Browse notes" :n "N" #'+hlissner/browse-notes
:desc "Org capture" :n "x" #'+org-capture/open :desc "Org capture" :n "x" #'+org-capture/open
:desc "Create clubhouse story" :n "c" #'org-clubhouse-create-story :desc "Create clubhouse story" :n "c" #'org-tracker-create-issue
:desc "Archive subtree" :n "k" #'org-archive-subtree :desc "Archive subtree" :n "k" #'org-archive-subtree
:desc "Goto clocked-in note" :n "g" #'org-clock-goto :desc "Goto clocked-in note" :n "g" #'org-clock-goto
:desc "Clock Out" :n "o" #'org-clock-out) :desc "Clock Out" :n "o" #'org-clock-out)

Binary file not shown.

View file

@ -223,6 +223,22 @@
(load! "+commands") (load! "+commands")
(load! "cpp") (load! "cpp")
(add-to-list 'load-path "/home/grfn/code/org-tracker")
(require 'org-tracker)
(use-package! org-tracker
:hook (org-mode . org-tracker-mode)
:config
(setq org-tracker-state-alist '(("BACKLOG" . "Backlog")
("PLANNED" . "Planned")
("TODO" . "Seleted for Development")
("ACTIVE" . "In Progress")
("PR" . "Code Review")
("DONE" . "Done"))
org-tracker-username "griffin@readyset.io"
org-tracker-claim-ticket-on-status-update '("ACTIVE" "PR" "DONE")
org-tracker-create-stories-with-labels 'existing))
(load! "+private") (load! "+private")
(require 'dash) (require 'dash)
@ -269,20 +285,6 @@
(setq doom-modeline-height 12) (setq doom-modeline-height 12)
(load "/home/grfn/code/org-clubhouse/org-clubhouse.el")
(use-package! org-clubhouse
:hook (org-mode . org-clubhouse-mode)
:config
(setq org-clubhouse-state-alist '(("BACKLOG" . "Unscheduled")
("TODO" . "Ready for Development")
("ACTIVE" . "In Development")
("PR" . "Ready for Review")
("DONE" . "Completed"))
org-clubhouse-username "griffinsmith"
org-clubhouse-claim-story-on-status-update '("ACTIVE" "PR" "DONE")
org-clubhouse-create-stories-with-labels 'existing
org-clubhouse-workflow-name "Engineering"))
;; Should really figure out which of these is correct, eventually ;; Should really figure out which of these is correct, eventually
@ -517,45 +519,45 @@
["f"] ["f"]
(list "o" "Reset HEAD@{1}" #'magit-reset-head-previous)) (list "o" "Reset HEAD@{1}" #'magit-reset-head-previous))
(defun magit-read-org-clubhouse-branch-name () (defun magit-read-org-tracker-branch-name ()
(when-let ((story-id (org-clubhouse-clocked-in-story-id))) (when-let ((issue-id (org-tracker-clocked-in-issue-id)))
(let ((desc (let ((desc
(magit-read-string-ns (magit-read-string-ns
(format "Story description (to go after gs/ch%d/)" (format "Issue description (to go after gs/%s/)"
story-id)))) issue-id))))
(format "gs/ch%d/%s" story-id desc)))) (format "gs/%s/%s" issue-id desc))))
(defun magit-read-org-clubhouse-branch-args () (defun magit-read-org-tracker-branch-args ()
(if-let ((story-id (org-clubhouse-clocked-in-story-id))) (if-let ((issue-id (org-tracker-clocked-in-issue-id)))
(let ((start-point (magit-read-starting-point (let ((start-point (magit-read-starting-point
"Create and checkout branch for Clubhouse story" "Create and checkout branch for Tracker issue"
nil nil
"origin/master"))) "origin/master")))
(if (magit-rev-verify start-point) (if (magit-rev-verify start-point)
(when-let ((desc (magit-read-org-clubhouse-branch-name))) (when-let ((desc (magit-read-org-tracker-branch-name)))
(list desc start-point)) (list desc start-point))
(user-error "Not a valid starting point: %s" choice))) (user-error "Not a valid starting point: %s" choice)))
(user-error "No currently clocked-in clubhouse story"))) (user-error "No currently clocked-in tracker issue")))
(transient-define-suffix magit-checkout-org-clubhouse-branch (branch start-point) (transient-define-suffix magit-checkout-org-tracker-branch (branch start-point)
(interactive (magit-read-org-clubhouse-branch-args)) (interactive (magit-read-org-tracker-branch-args))
(magit-branch-and-checkout branch start-point)) (magit-branch-and-checkout branch start-point))
(transient-define-suffix magit-rename-org-clubhouse-branch (old new) (transient-define-suffix magit-rename-org-tracker-branch (old new)
(interactive (interactive
(let ((branch (magit-read-local-branch "Rename branch"))) (let ((branch (magit-read-local-branch "Rename branch")))
(list branch (magit-read-org-clubhouse-branch-name)))) (list branch (magit-read-org-tracker-branch-name))))
(when (and old new) (when (and old new)
(magit-branch-rename old new))) (magit-branch-rename old new)))
(transient-append-suffix (transient-append-suffix
#'magit-branch #'magit-branch
["c"] ["c"]
(list "C" "Checkout Clubhouse branch" #'magit-checkout-org-clubhouse-branch)) (list "C" "Checkout Tracker branch" #'magit-checkout-org-tracker-branch))
(transient-append-suffix (transient-append-suffix
#'magit-branch #'magit-branch
["c"] ["c"]
(list "M" "Rename branch to Clubhouse ticket" #'magit-rename-org-clubhouse-branch))) (list "M" "Rename branch to Tracker ticket" #'magit-rename-org-tracker-branch)))
;; (defun grfn/split-window-more-sensibly (&optional window) ;; (defun grfn/split-window-more-sensibly (&optional window)
;; (let ((window (or window (selected-window)))) ;; (let ((window (or window (selected-window))))

View file

@ -17,9 +17,9 @@
(package! string-inflection) (package! string-inflection)
;;; Org ;;; Org
(package! org-clubhouse (package! org-tracker
:recipe (:host file :recipe (:host file
:local-repo "~/code/org-clubhouse")) :local-repo "~/code/org-tracker"))
(package! org-alert) (package! org-alert)
(package! ob-http) (package! ob-http)
(package! ob-ipython) (package! ob-ipython)