Variable: forge-alist

forge-alist is a customizable variable defined in forge-core.el.

Value

(("github.com" "api.github.com" "github.com" forge-github-repository)
 ("ssh.github.com" "api.github.com" "github.com"
  forge-github-repository)
 ("gitlab.com" "gitlab.com/api/v4" "gitlab.com"
  forge-gitlab-repository)
 ("salsa.debian.org" "salsa.debian.org/api/v4" "salsa.debian.org"
  forge-gitlab-repository)
 ("framagit.org" "framagit.org/api/v4" "framagit.org"
  forge-gitlab-repository)
 ("gitlab.gnome.org" "gitlab.gnome.org/api/v4" "gitlab.gnome.org"
  forge-gitlab-repository)
 ("codeberg.org" "codeberg.org/api/v1" "codeberg.org"
  forge-forgejo-repository)
 ("bitbucket.org" "api.bitbucket.org/2.0" "bitbucket.org"
  forge-bitbucket-repository)
 ("git.savannah.gnu.org" nil "git.savannah.gnu.org"
  forge-cgit**-repository)
 ("git.kernel.org" nil "git.kernel.org" forge-cgit-repository)
 ("repo.or.cz" nil "repo.or.cz" forge-repoorcz-repository)
 ("git.suckless.org" nil "git.suckless.org" forge-stagit-repository)
 ("git.sr.ht" nil "git.sr.ht" forge-srht-repository))

Documentation

List of Git forges.

Each entry has the form (GITHOST APIHOST WEBHOST CLASS).

- GITHOST is the host used to access repositories on the forge using
  Git.

- APIHOST is the host used to access the forge's API. For some forges
  the isn't just a host, but a host followed by the path to the API's
  endpoint.

- WEBHOST is the host used to access repositories on this forge using
  a browser. The IDs used to identify repositories from the forge in
  the local database also derives from this value.

- CLASS is the class to be used for repositories from the forge.

Complications:

- When connecting to a Github Enterprise edition whose REST API's
  end point is "<host>/v3" and whose GraphQL API's end point is
  "<host>/graphql", then use "<host>/v3" as APIHOST. This is a
  historic accident. See issue #174.

- WEBHOST and CLASS cannot be changed once you have added one or
  more repositories from a forge. Changing GITHOST and/or APIHOST
  may be possible, but should seldom be necessary.

This variable was added, or its default value changed, in forge version 0.4.7.

Source Code

;; Defined in ~/.emacs.d/elpa/forge-20260408.1922/forge-core.el
(defcustom forge-alist
  '(;; Forges
    ("github.com" "api.github.com"
     "github.com" forge-github-repository)
    ("ssh.github.com" "api.github.com"
     "github.com" forge-github-repository)
    ("gitlab.com" "gitlab.com/api/v4"
     "gitlab.com" forge-gitlab-repository)
    ("salsa.debian.org" "salsa.debian.org/api/v4"
     "salsa.debian.org" forge-gitlab-repository)
    ("framagit.org" "framagit.org/api/v4"
     "framagit.org" forge-gitlab-repository)
    ("gitlab.gnome.org" "gitlab.gnome.org/api/v4"
     "gitlab.gnome.org" forge-gitlab-repository)
    ;; Forges (API unsupported)
    ("codeberg.org" "codeberg.org/api/v1"
     "codeberg.org" forge-forgejo-repository)
    ("bitbucket.org" "api.bitbucket.org/2.0"
     "bitbucket.org" forge-bitbucket-repository)
    ;; Semi-Forges
    ("git.savannah.gnu.org" nil
     "git.savannah.gnu.org" forge-cgit**-repository)
    ("git.kernel.org" nil
     "git.kernel.org" forge-cgit-repository)
    ("repo.or.cz" nil
     "repo.or.cz" forge-repoorcz-repository)
    ("git.suckless.org" nil
     "git.suckless.org" forge-stagit-repository)
    ("git.sr.ht" nil
     "git.sr.ht" forge-srht-repository))
  "List of Git forges.

Each entry has the form (GITHOST APIHOST WEBHOST CLASS).

- GITHOST is the host used to access repositories on the forge using
  Git.

- APIHOST is the host used to access the forge's API.  For some forges
  the isn't just a host, but a host followed by the path to the API's
  endpoint.

- WEBHOST is the host used to access repositories on this forge using
  a browser.  The IDs used to identify repositories from the forge in
  the local database also derives from this value.

- CLASS is the class to be used for repositories from the forge.

Complications:

- When connecting to a Github Enterprise edition whose REST API's
  end point is \"<host>/v3\" and whose GraphQL API's end point is
  \"<host>/graphql\", then use \"<host>/v3\" as APIHOST.  This is a
  historic accident.  See issue #174.

- WEBHOST and CLASS cannot be changed once you have added one or
  more repositories from a forge.  Changing GITHOST and/or APIHOST
  may be possible, but should seldom be necessary."
  :package-version '(forge . "0.4.7")
  :group 'forge
  :type '(repeat (list (string :tag "Git host")
                       (choice (string :tag "API endpoint")
                               (const  :tag "No API" nil))
                       (string :tag "ID")
                       (symbol :tag "Repository class"))))