Skip to content

Commit 3b2775d

Browse files
committed
forge--{as-webhost,host-id}: New functions
1 parent 8d26725 commit 3b2775d

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

lisp/forge-repo.el

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,17 @@ forges and hosts."
510510
(cadr (car (cl-member host forge-alist :test #'equal :key #'caddr)))
511511
(error "Cannot determine apihost for %S" host)))
512512

513+
(defun forge--as-webhost (host &optional noerror)
514+
(or (caddr (car (cl-member host forge-alist :test #'equal :key #'cadr)))
515+
(caddr (car (cl-member host forge-alist :test #'equal :key #'car)))
516+
(caddr (car (cl-member host forge-alist :test #'equal :key #'caddr)))
517+
(and (not noerror)
518+
(error "Cannot determine webhost for %S" host))))
519+
520+
(defun forge--host-id (host)
521+
(or (forge--as-webhost host t)
522+
(error "Cannot determine identifier for %S" host)))
523+
513524
(cl-defmethod ghub--host ((repo forge-repository))
514525
(cl-call-next-method (forge--ghub-type-symbol (eieio-object-class repo))))
515526

@@ -519,10 +530,9 @@ forges and hosts."
519530
(when-let ((worktree (forge-get-worktree repo)))
520531
(setq default-directory worktree)))
521532
(with-slots (apihost) repo
522-
(cl-call-next-method
523-
(caddr (car (cl-member apihost forge-alist :test #'equal :key #'cadr)))
524-
(forge--ghub-type-symbol (eieio-object-class repo))
525-
apihost))))
533+
(cl-call-next-method (forge--host-id apihost)
534+
(forge--ghub-type-symbol (eieio-object-class repo))
535+
apihost))))
526536

527537
(defun forge--ghub-type-symbol (class)
528538
(pcase-exhaustive class

0 commit comments

Comments
 (0)