Function: ghub-repository-id

ghub-repository-id is a byte-compiled function defined in ghub.el.

Signature

(ghub-repository-id OWNER NAME &key USERNAME AUTH HOST FORGE NOERROR)

Documentation

Return the id of the specified repository.

Signal an error if the id cannot be determined.

Source Code

;; Defined in ~/.emacs.d/elpa/ghub-20260401.1239/ghub.el
(cl-defun ghub-repository-id (owner name &key username auth host forge noerror)
  "Return the id of the specified repository.
Signal an error if the id cannot be determined."
  (or (pcase forge
        ((or 'nil 'github)
         (let-alist (ghub-query
                      '(query (repository [(owner $owner String!)
                                           (name  $name  String!)]
                                          id))
                      `((owner . ,owner)
                        (name  . ,name))
                      :synchronous t
                      :username username :auth auth :host host)
           .repository.id))
        ('gitlab
         (number-to-string
          (alist-get
           'id (ghub-get (format "/projects/%s%%2F%s"
                                 (string-replace "/" "%2F" owner)
                                 name)
                         nil :forge 'gitlab
                         :username username :auth auth :host host))))
        ((or 'forgejo 'gitea 'gogs)
         (number-to-string
          (alist-get
           'id (ghub-get (format "/repos/%s/%s" owner name)
                         nil :forge forge
                         :username username :auth auth :host host))))
        ('bitbucket
         (substring
          (alist-get 'uuid
                     (ghub-get (format "/repositories/%s/%s" owner name)
                               nil :forge 'bitbucket
                               :username username :auth auth :host host))
          1 -1))
        (_ (error "ghub-repository-id: Forge type `%s' is unknown" forge)))
      (and (not noerror)
           (error "Repository %S does not exist on %S.\n%s%S?"
                  (concat owner "/" name)
                  (or host (ghub--host forge))
                  "Maybe it was renamed and you have to update "
                  "remote.<remote>.url"))))