From 597282cbd7fe78c0cae0b9c48be92842003c34b9 Mon Sep 17 00:00:00 2001 From: orion Date: Tue, 14 Apr 2026 21:57:44 +0000 Subject: [PATCH] fix(git-hangman-lab): repo search - output single match as {"name","id","owner","clone-url"}, exit 1 if not found --- git-hangman-lab/scripts/repo | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/git-hangman-lab/scripts/repo b/git-hangman-lab/scripts/repo index 33071fa..09fcfe9 100755 --- a/git-hangman-lab/scripts/repo +++ b/git-hangman-lab/scripts/repo @@ -316,30 +316,31 @@ do_search() { RESP=$(curl -s -H "Authorization: token $TOKEN" \ "https://git.hangman-lab.top/api/v1/repos/search?q=${REPO_NAME}") - if ! echo "$RESP" | python3 -c " + RESULT=$(echo "$RESP" | python3 -c " import sys, json data = json.load(sys.stdin) results = data.get('data', []) if isinstance(data, dict) else [] -ok = True -matches = [] for r in results: if isinstance(r, dict) and r.get('name') == '${REPO_NAME}': owner = r.get('owner', {}) - if isinstance(owner, dict): - login = owner.get('login', '') - else: - login = '' - matches.append({ + login = owner.get('login', '') if isinstance(owner, dict) else '' + out = { + 'name': r.get('name', ''), 'id': r.get('id'), - 'owner': {'login': login}, - 'name': r.get('name'), - 'clone_url': r.get('clone_url', '') - }) -print(json.dumps({'ok': ok, 'data': matches})) -" 2>/dev/null; then - echo '{"ok": false, "data": []}' - exit 0 + 'owner': login, + 'clone-url': r.get('clone_url', '') + } + print(json.dumps(out)) + sys.exit(0) +print('NOT_FOUND') +" 2>/dev/null) + + if [[ "$RESULT" == "NOT_FOUND" ]]; then + echo "Error: repository '$REPO_NAME' not found" >&2 + exit 1 fi + + echo "$RESULT" } # ─────────────────────────────────────────────