• Will Chen's avatar
    Fix repo name mismatch when GitHub repo name contains spaces (#2377) · 9108f67c
    Will Chen 提交于
    ## Summary
    - Adds `normalizeGitHubRepoName` function that converts spaces to
    hyphens to match GitHub's automatic normalization behavior
    - Applies normalization when creating repos, checking availability, and
    storing repo names in the database
    - Fixes issue where Dyad stored "my app" but GitHub created "my-app",
    causing a mismatch
    
    Fixes #1336
    
    ## Test plan
    - Unit tests added for `normalizeGitHubRepoName` function covering edge
    cases
    - E2E test added to verify repo names with spaces are properly
    normalized when creating and syncing
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2377">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Normalize GitHub repo names by converting all whitespace to hyphens so
    our stored name matches GitHub’s actual repo name. Fixes #1336.
    
    - **Bug Fixes**
      - Add normalizeGitHubRepoName to convert whitespace to hyphens.
    - Apply normalization for availability checks, repo creation, remote
    URLs, and DB storage.
    - Add unit tests for edge cases and an E2E test for create/sync with
    spaced names.
    
    <sup>Written for commit 0735ce38a11fced50e670821e58289dcc53fe86f.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Medium Risk**
    > Touches the GitHub create/availability flow and the repo name stored
    in the app DB, which could break GitHub linking if normalization is
    incorrect. Logic is small and well-covered by new unit and E2E tests,
    reducing risk.
    > 
    > **Overview**
    > Fixes repo-name mismatches when users enter names containing
    whitespace by introducing `normalizeGitHubRepoName` (trim + collapse
    whitespace to `-`).
    > 
    > Applies normalization to repo availability checks, repo creation
    payloads, generated remote URLs, and `updateAppGithubRepo` persistence
    so the app consistently uses GitHub’s normalized repo name.
    > 
    > Adds Vitest unit coverage for normalization edge cases and a
    Playwright E2E test that creates/syncs a repo named with spaces and
    asserts the hyphenated name is used end-to-end.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    0735ce38a11fced50e670821e58289dcc53fe86f. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    ---------
    Co-authored-by: 's avatarClaude Opus 4.5 <noreply@anthropic.com>
    9108f67c
github_utils.test.ts 1.0 KB