diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+haskell-git-lfs (1.2.5) unstable; urgency=medium
+
+  * Export mkEndpoint.
+
+ -- Joey Hess <id@joeyh.name>  Tue, 18 Feb 2025 13:31:48 -0400
+
 haskell-git-lfs (1.2.4) unstable; urgency=medium
 
   * In guessEndpoint, when converting a http URL with a nonstandard
diff --git a/Network/GitLFS.hs b/Network/GitLFS.hs
--- a/Network/GitLFS.hs
+++ b/Network/GitLFS.hs
@@ -51,6 +51,7 @@
 	-- * Endpoint discovery
 	Endpoint,
 	guessEndpoint,
+	mkEndpoint,
 	modifyEndpointRequest,
 	sshDiscoverEndpointCommand,
 	parseSshDiscoverEndpointResponse,
@@ -306,12 +307,11 @@
 		RequestUpload -> "upload"
 	]
 
--- Internal smart constructor for an Endpoint.
--- 
--- Since this uses the LFS batch API, it adds /objects/batch
--- to the endpoint url. It also adds the necessary headers to use JSON.
+-- | Smart constructor for an Endpoint, given the API URL.
 mkEndpoint :: URI.URI -> Maybe Endpoint
 mkEndpoint uri = do
+	-- Since this uses the LFS batch API, it adds /objects/batch
+	-- to the endpoint url. It also adds the necessary headers to use JSON.
 	r <- requestFromURI uri
 	let r' = addLfsJsonHeaders $ r { path = path r <> "/objects/batch" }
 	return (Endpoint r')
diff --git a/git-lfs.cabal b/git-lfs.cabal
--- a/git-lfs.cabal
+++ b/git-lfs.cabal
@@ -1,5 +1,5 @@
 Name: git-lfs
-Version: 1.2.4
+Version: 1.2.5
 Cabal-Version: >= 1.10
 License: AGPL-3
 Maintainer: Joey Hess <id@joeyh.name>
