Fix repo name mismatch when GitHub repo name contains spaces (#2377)
## 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>
正在显示
请
注册
或者
登录
后发表评论