mercurial/bundlecaches.py
changeset 50576 dc201a09e82c
parent 50575 e6948aafda6f
child 50675 60f9602b413e
--- a/mercurial/bundlecaches.py	Fri May 26 16:55:52 2023 +0200
+++ b/mercurial/bundlecaches.py	Fri May 26 17:41:25 2023 +0200
@@ -25,8 +25,29 @@
 
 CB_MANIFEST_FILE = b'clonebundles.manifest'
 
+
 def get_manifest(repo):
-    return repo.vfs.tryread(CB_MANIFEST_FILE)
+    """get the bundle manifest to be served to a client from a server"""
+    raw_text = repo.vfs.tryread(CB_MANIFEST_FILE)
+    entries = [e.split(b' ', 1) for e in raw_text.splitlines()]
+
+    new_lines = []
+    for e in entries:
+        url = alter_bundle_url(repo, e[0])
+        if len(e) == 1:
+            line = url + b'\n'
+        else:
+            line = b"%s %s\n" % (url, e[1])
+        new_lines.append(line)
+    return b''.join(new_lines)
+
+
+def alter_bundle_url(repo, url):
+    """a function that exist to help extension and hosting to alter the url
+
+    This will typically be used to inject authentication information in the url
+    of cached bundles."""
+    return url
 
 
 @attr.s