diff options
author | Vincent Ambo <mail@tazj.in> | 2020-06-19T15·51+0100 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2020-06-19T17·54+0000 |
commit | e7f8bdd548a7347759c8704f4293daacf1277581 (patch) | |
tree | ccf2eefa2880402c2685f2d6319e673b0cb38612 /tools/emacs-pkgs/tvl/tvl.el | |
parent | b72d23207552a79bcb8623b85415fa4ededd3ecc (diff) |
feat(emacs-pkgs/tvl): Add magit shortcuts for reviews & co r/1039
Introduces two new shortcuts in the magit popup for pushing: * R: Push for review * S: Push to submit The existing "P" command remains, but has been renamed to "rubberstamp" and documented with a warning. To make this work across people's different setups, customisation options for TVL-specific code are being added. Change-Id: I48e75db55b5f793342fc898093629e437f58dcb2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/503 Reviewed-by: glittershark <grfn@gws.fyi>
Diffstat (limited to 'tools/emacs-pkgs/tvl/tvl.el')
-rw-r--r-- | tools/emacs-pkgs/tvl/tvl.el | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/tools/emacs-pkgs/tvl/tvl.el b/tools/emacs-pkgs/tvl/tvl.el index 31d1143188be..4947f66a65c9 100644 --- a/tools/emacs-pkgs/tvl/tvl.el +++ b/tools/emacs-pkgs/tvl/tvl.el @@ -1,10 +1,11 @@ ;;; tvl.el --- description -*- lexical-binding: t; -*- ;; ;; Copyright (C) 2020 Griffin Smith +;; Copyright (C) 2020 The TVL Contributors ;; ;; Author: Griffin Smith <grfn@gws.fyi> ;; Version: 0.0.1 -;; Package-Requires: (cl-lib magit) +;; Package-Requires: (s magit) ;; ;; This file is not part of GNU Emacs. ;; @@ -15,18 +16,56 @@ ;;; Code: (require 'magit) +(require 's) -(define-suffix-command magit-push-and-submit () +(defgroup tvl nil + "Customisation options for TVL functionality.") + +(defcustom tvl-gerrit-remote "origin" + "Name of the git remote for gerrit" + :group 'tvl) + +(defun tvl--gerrit-ref (target-branch &optional flags) + (let ((flag-suffix (if flags (format "%%l=%s" (s-join "," flags)) + ""))) + (format "HEAD:refs/for/%s%s" target-branch flag-suffix))) + +(define-suffix-command magit-gerrit-push-for-review () + "Push to Gerrit for review." (interactive) - (magit-push-refspecs - "origin" "HEAD:refs/for/master%l=Code-Review+2,publish-comments,submit" - nil)) + (magit-push-refspecs tvl-gerrit-remote + (tvl--gerrit-ref "master") + nil)) (transient-append-suffix - #'magit-push - ["r"] + #'magit-push ["r"] + (list "R" "push to Gerrit for review" #'magit-gerrit-push-for-review)) - (list "P" "Push and submit to gerrit" #'magit-push-and-submit)) +(define-suffix-command magit-gerrit-submit () + "Push to Gerrit for review." + (interactive) + (magit-push-refspecs tvl-gerrit-remote + (tvl--gerrit-ref "master" '("submit")) + nil)) + +(transient-append-suffix + #'magit-push ["r"] + (list "S" "push to Gerrit to submit" #'magit-gerrit-submit)) + + +(define-suffix-command magit-gerrit-rubberstamp () + "Push, automatically approve and submit to Gerrit. This +rubberstamp operation is dangerous and should only be used in +`//users'." + (interactive) + (magit-push-refspecs tvl-gerrit-remote + (tvl--gerrit-ref "master" + '("Code-Review+2" "publish-comments" "submit")) + nil)) + +(transient-append-suffix + #'magit-push ["r"] + (list "P" "push, rubberstamp & submit to Gerrit" #'magit-gerrit-rubberstamp)) (provide 'tvl) ;;; tvl.el ends here |