Skip to content

Commit b0e78ae

Browse files
committed
add authentication to destination repo ls_remote to account for potential privateness
1 parent 121b921 commit b0e78ae

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

src/hubcast/web/gitlab/routes.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ async def sync_branch(event, gl_src, gl_dest, dest_user, *args, **kwargs):
6969
target_ref = event.data["ref"]
7070

7171
# skip branches from push events that are also merge requests
72+
# TODO this needs the src creds if necessary
7273
src_refs = await ls_remote(src_repo_url)
7374
pull_refs = [
7475
src_refs[ref] for ref in src_refs if ref.startswith("refs/merge-requests/")
@@ -87,9 +88,12 @@ async def sync_branch(event, gl_src, gl_dest, dest_user, *args, **kwargs):
8788
"src_forge": "gitlab",
8889
}
8990
await gl_dest.set_webhook(dest_fullname, webhook_data)
91+
dest_token = await gl_dest.auth.authenticate_installation(dest_user)
9092

9193
# sync commits from source -> destination
92-
dest_refs = await ls_remote(dest_remote_url)
94+
dest_refs = await ls_remote(
95+
dest_remote_url, username=dest_user, password=dest_token
96+
)
9397
have_shas = dest_refs.values()
9498
from_sha = dest_refs.get(target_ref) or ("0" * 40)
9599

@@ -99,8 +103,6 @@ async def sync_branch(event, gl_src, gl_dest, dest_user, *args, **kwargs):
99103

100104
packfile = await fetch_pack(src_repo_url, want_sha, have_shas)
101105

102-
dest_token = await gl_dest.auth.authenticate_installation(dest_user)
103-
104106
log.info(f"[{src_fullname}]: mirroring {from_sha} -> {want_sha}")
105107
await send_pack(
106108
dest_remote_url,
@@ -123,13 +125,14 @@ async def remove_branch(event, gl_src, gl_dest, dest_user, *args, **kwargs):
123125

124126
dest_fullname = f"{repo_config.dest_org}/{repo_config.dest_name}"
125127
dest_remote_url = f"{gl_dest.instance_url}/{dest_fullname}.git"
128+
dest_token = await gl_dest.auth.authenticate_installation(dest_user)
126129

127-
dest_refs = await ls_remote(dest_remote_url)
130+
dest_refs = await ls_remote(
131+
dest_remote_url, username=dest_user, password=dest_token
132+
)
128133
head_sha = dest_refs.get(target_ref)
129134
null_sha = "0" * 40
130135

131-
dest_token = await gl_dest.auth.authenticate_installation(dest_user)
132-
133136
log.info(f"[{src_fullname}]: deleting {target_ref}")
134137
await send_pack(
135138
dest_remote_url,
@@ -173,9 +176,12 @@ async def sync_mr(event, gl_src, gl_dest, dest_user, *args, **kwawrgs):
173176

174177
dest_fullname = f"{repo_config.dest_org}/{repo_config.dest_name}"
175178
dest_remote_url = f"{gl_dest.instance_url}/{dest_fullname}.git"
179+
dest_token = await gl_dest.auth.authenticate_installation(dest_user)
176180

177181
# sync commits from source -> destination
178-
dest_refs = await ls_remote(dest_remote_url)
182+
dest_refs = await ls_remote(
183+
dest_remote_url, username=dest_user, password=dest_token
184+
)
179185
have_shas = dest_refs.values()
180186
from_sha = dest_refs.get(target_ref) or ("0" * 40)
181187

@@ -185,8 +191,6 @@ async def sync_mr(event, gl_src, gl_dest, dest_user, *args, **kwawrgs):
185191

186192
packfile = await fetch_pack(src_repo_url, want_sha, have_shas)
187193

188-
dest_token = await gl_dest.auth.authenticate_installation(dest_user)
189-
190194
log.info(f"[{src_fullname}]: mirroring {from_sha} -> {want_sha}")
191195
await send_pack(
192196
dest_remote_url,
@@ -222,13 +226,14 @@ async def remove_mr(event, gl_src, gl_dest, dest_user, *args, **kwawrgs):
222226

223227
dest_fullname = f"{repo_config.dest_org}/{repo_config.dest_name}"
224228
dest_remote_url = f"{gl_dest.instance_url}/{dest_fullname}.git"
229+
dest_token = await gl_dest.auth.authenticate_installation(dest_user)
225230

226-
dest_refs = await ls_remote(dest_remote_url)
231+
dest_refs = await ls_remote(
232+
dest_remote_url, username=dest_user, password=dest_token
233+
)
227234
head_sha = dest_refs.get(target_ref)
228235
null_sha = "0" * 40
229236

230-
dest_token = await gl_dest.auth.authenticate_installation(dest_user)
231-
232237
log.info(f"[{src_fullname}]: deleting {target_ref}")
233238
await send_pack(
234239
dest_remote_url,

0 commit comments

Comments
 (0)