-
由 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:Claude Opus 4.5 <noreply@anthropic.com>