Function: majutsu-gerrit--shared-spec
majutsu-gerrit--shared-spec is a natively compiled function defined in
majutsu-gerrit.el.
Signature
(majutsu-gerrit--shared-spec &optional REMOTE DIRECTORY)
Documentation
Return a reliable Gerrit web/API spec for REMOTE in DIRECTORY.
Only explicit web origins are accepted: gerrit.review-url or an HTTP(S)
remote. SSH remotes are intentionally ignored because their ports are upload
ports, not Gerrit web/API ports.
Source Code
;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-gerrit.el
(defun majutsu-gerrit--shared-spec (&optional remote directory)
"Return a reliable Gerrit web/API spec for REMOTE in DIRECTORY.
Only explicit web origins are accepted: `gerrit.review-url' or an HTTP(S)
remote. SSH remotes are intentionally ignored because their ports are upload
ports, not Gerrit web/API ports."
(when-let* ((base-url
(or (when-let* ((review-url (majutsu-gerrit--config-get
"gerrit.review-url")))
(majutsu-gerrit--base-url-from-review-url review-url))
(when-let* ((remote-url (majutsu-gerrit--remote-url remote directory))
(parsed (url-generic-parse-url remote-url))
(scheme (url-type parsed))
((member scheme '("http" "https"))))
(majutsu-gerrit--base-url-from-remote-url remote-url))))
(parsed (url-generic-parse-url base-url))
(scheme (url-type parsed))
(host (url-host parsed)))
(let* ((port (url-port parsed))
(host-with-port (majutsu-gerrit--host-with-port host port scheme))
(path (majutsu-gerrit--trim-trailing-slashes
(or (url-filename parsed) ""))))
(list :gerrit-host host-with-port
:gerrit-prefix (concat (if (string-empty-p path) "" path) "/a")
:ssl (equal scheme "https")))))