From 07aad3562f4cc8ca99b12c885b99e1425da7f0d4 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Wed, 18 Mar 2026 23:45:16 -0700 Subject: [PATCH] refactor: lowercase slug in gstack-slug and getRemoteSlug() Fixes mixed-case slugs like Garry-s-List-garryslist by adding tr '[:upper:]' '[:lower:]' to bash and .toLowerCase() to TypeScript. Co-Authored-By: Claude Opus 4.6 (1M context) --- bin/gstack-slug | 2 +- lib/util.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/gstack-slug b/bin/gstack-slug index 7336b7b4..d31cd5a3 100755 --- a/bin/gstack-slug +++ b/bin/gstack-slug @@ -3,7 +3,7 @@ # Usage: eval $(gstack-slug) → sets SLUG and BRANCH variables # Or: gstack-slug → prints SLUG=... and BRANCH=... lines set -euo pipefail -SLUG=$(git remote get-url origin 2>/dev/null | sed 's|.*[:/]\([^/]*/[^/]*\)\.git$|\1|;s|.*[:/]\([^/]*/[^/]*\)$|\1|' | tr '/' '-') +SLUG=$(git remote get-url origin 2>/dev/null | sed 's|.*[:/]\([^/]*/[^/]*\)\.git$|\1|;s|.*[:/]\([^/]*/[^/]*\)$|\1|' | tr '/' '-' | tr '[:upper:]' '[:lower:]') BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null | tr '/' '-') echo "SLUG=$SLUG" echo "BRANCH=$BRANCH" diff --git a/lib/util.ts b/lib/util.ts index 39ff2a6a..b5b6df02 100644 --- a/lib/util.ts +++ b/lib/util.ts @@ -88,7 +88,7 @@ export function getRemoteSlug(): string { // SSH: git@github.com:owner/repo.git → owner-repo // HTTPS: https://github.com/owner/repo.git → owner-repo const match = url.match(/[:/]([^/]+)\/([^/]+?)(?:\.git)?$/); - if (match) return `${match[1]}-${match[2]}`; + if (match) return `${match[1]}-${match[2]}`.toLowerCase(); throw new Error('unparseable'); } catch { const root = getGitRoot();