Skip to content

feat: add Origin (Cursor) as a connectable git provider - #3168

Closed
Meldiron wants to merge 5 commits into
mainfrom
feat-origin-vcs-provider
Closed

feat: add Origin (Cursor) as a connectable git provider#3168
Meldiron wants to merge 5 commits into
mainfrom
feat-origin-vcs-provider

Conversation

@Meldiron

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds Origin, Cursor's git hosting platform, as a connectable VCS provider, following the Gitea precedent (843669229) and going a bit further where Gitea shipped incomplete.

  • Connect to Origin button (Cursor cube icon, second after GitHub) in the shared connectGit empty state used by the create-function/create-site wizards and repository pickers — shown when the server's _APP_VCS_PROVIDERS includes origin (no self-hosted gate: Origin is a cloud service)
  • connectOrigin() + exported connectVcsProvider() and provider URL helpers in src/lib/stores/git.ts
  • Settings → Git installations is now provider-aware: Origin installations get their icon and cursor.com/codebase/{org} links, each row's Configure follows that installation's provider instead of always GitHub, and unknown providers render a generic git icon instead of a blank avatar
  • Repository cards, the function/site git-deployment modals, and the deployment-source popover no longer hardcode GitHub icons/links

Requires server-side support from appwrite/appwrite#13259 (which builds on utopia-php/vcs#133). Verified locally against a live Origin installation: connect flow, repository listing, deployments and check runs all round-trip.

bun run check: 0 errors (87 pre-existing warnings, none in touched files).

🤖 Generated with Claude Code

Adds Origin, Cursor's git hosting, alongside GitHub and Gitea:
- IconOrigin.svelte with the Cursor cube mark, currentcolor like the
other provider icons
- connectOrigin() plus provider URL helpers in the git store, and a
Connect to Origin button (second, after GitHub) in the shared connect
empty state, gated on _APP_VCS_PROVIDERS containing 'origin'
- Provider-aware settings page: Origin icon and cursor.com/codebase
links for installations, per-row Configure follows the row's provider
instead of always GitHub, unknown providers fall back to a git icon
- Repository cards, git-deployment modals and the deployment source
popover no longer assume GitHub for icons and repository links
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@appwrite

appwriteBot commented Aug 18, 2026

Copy link
Copy Markdown

Console (appwrite/console)

Project ID: 688b7bf400350cbd60e9

Sites (1)
SiteStatusLogsPreviewQR
console-stage
688b7cf6003b1842c9dc
ReadyReadyView LogsPreview URLQR Code

Tip

Custom domains work with both CNAME for subdomains and NS records for apex domains

Meldironand others added 4 commits August 18, 2026 17:58
Builds on the Origin groundwork with a central provider registry in the
git store (icons, labels, provider URLs, installation-settings URLs and
enablement gates), the same shape the new console uses. Everything that
assumed GitHub now reads from it:
- Connect empty states (shared connectGit, settings, both template
wizards) render one button per enabled provider
- Settings' Add installation becomes a provider chooser when more than
one provider is enabled, and each row's Configure follows the row's
provider
- The repository picker labels installations with their provider icon
and offers per-provider 'Add installation' entries
- 'Missing a repository?' permission links follow the installation's
provider (GitHub installation settings vs Cursor's app settings)
- Wizard asides and repository cards show the connected provider's icon
- The create-repository modal explains that Origin apps cannot create
repositories and points at cursor.com instead
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…anges
- Health service was removed from the SDK; it was instantiated but never
called, so drop it from the sdk store.
- Models.CloudLocale merged into Models.Locale.
- createTextEmbeddings moved from VectorsDB to the new Embeddings service.
- Migration imports/exports take databaseId + collectionId instead of the
composite resourceId string.
- Models.App gained required labels, installationScopes and
installationRedirectUrl fields.
- DatabaseType enum gained mysql/postgresql/mongodb; derive the local
terminology union from the SDK enum instead of duplicating it.
- UsageProject lost executionsBreakdown, so the per-function executions
table on the project usage page is gone with it.
- _APP_VCS_PROVIDERS is now part of ConsoleVariables, so the manual casts
are no longer needed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The button row in the git empty states spans the full footer width, so it
needs its own centering like the MCP card below it. Also drops the now
redundant _APP_VCS_PROVIDERS casts in the touched files.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…bility
Console variables now report which VCS providers support repository
creation (_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION) and which can host
public repositories (_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES).
- The new-repository form only offers organizations whose provider can
create repositories, and hides the public/private toggle (forcing
private) when the provider cannot host public repositories.
- The connect-repository modal and the function/site template wizards hide
the "Create new repository" choice entirely when no installation
supports creation, replacing the hardcoded Origin special case.
- Servers that predate the new variables keep the historical behavior.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Meldiron