Skip to content

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

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

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

appwrite Bot commented Aug 18, 2026

Copy link
Copy Markdown

Console (appwrite/console)

Project ID: 688b7bf400350cbd60e9

Sites (1)
Site Status Logs Preview QR
 console-stage
688b7cf6003b1842c9dc
Ready Ready View Logs Preview URL QR Code

Tip

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

Meldiron and 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 free to 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