fix: voorkom duplicate repo-IDs bij toevoegen via UI
This commit is contained in:
parent
e5ef3b02b7
commit
f96a9407d5
1 changed files with 15 additions and 3 deletions
|
|
@ -316,7 +316,13 @@ def api_repos_add():
|
||||||
if not url:
|
if not url:
|
||||||
return jsonify(ok=False, msg="URL vereist")
|
return jsonify(ok=False, msg="URL vereist")
|
||||||
repos = list(cfg.load().get("APP_REPOS", []))
|
repos = list(cfg.load().get("APP_REPOS", []))
|
||||||
rid = d.get("id", url.split("/")[-1].replace(".git", "")).strip()[:30] or str(int(time.time()))
|
existing_ids = {r["id"] for r in repos}
|
||||||
|
base_rid = d.get("id", url.split("/")[-1].replace(".git", "")).strip()[:30] or str(int(time.time()))
|
||||||
|
rid = base_rid
|
||||||
|
counter = 1
|
||||||
|
while rid in existing_ids:
|
||||||
|
rid = f"{base_rid}-{counter}"
|
||||||
|
counter += 1
|
||||||
repos.append({"id": rid, "name": d.get("name", "").strip() or url.split("/")[-1],
|
repos.append({"id": rid, "name": d.get("name", "").strip() or url.split("/")[-1],
|
||||||
"url": url, "branch": d.get("branch", "main"),
|
"url": url, "branch": d.get("branch", "main"),
|
||||||
"token": d.get("token", ""), "subdir": d.get("subdir", "")})
|
"token": d.get("token", ""), "subdir": d.get("subdir", "")})
|
||||||
|
|
@ -877,8 +883,14 @@ def api_modrepos_add():
|
||||||
if not url:
|
if not url:
|
||||||
return jsonify(ok=False, msg="URL vereist")
|
return jsonify(ok=False, msg="URL vereist")
|
||||||
repos = list(cfg.load().get("MODULE_REPOS", []))
|
repos = list(cfg.load().get("MODULE_REPOS", []))
|
||||||
repos.append({"id": d.get("id", url.split("/")[-1].replace(".git", ""))[:30],
|
existing_ids = {r["id"] for r in repos}
|
||||||
"name": d.get("name", "") or url.split("/")[-1],
|
base_rid = d.get("id", url.split("/")[-1].replace(".git", ""))[:30]
|
||||||
|
rid = base_rid
|
||||||
|
counter = 1
|
||||||
|
while rid in existing_ids:
|
||||||
|
rid = f"{base_rid}-{counter}"
|
||||||
|
counter += 1
|
||||||
|
repos.append({"id": rid, "name": d.get("name", "") or url.split("/")[-1],
|
||||||
"url": url, "branch": d.get("branch", "main"),
|
"url": url, "branch": d.get("branch", "main"),
|
||||||
"subdir": d.get("subdir", "")})
|
"subdir": d.get("subdir", "")})
|
||||||
cfg.patch({"MODULE_REPOS": repos})
|
cfg.patch({"MODULE_REPOS": repos})
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue