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")))))