Skip to content

feat(projects): bind a project to a git source/repo (GitBindingModal + project.git) #94

Description

@pparage

Problem

There is no UI to associate a project with a git repo, so projects are never git-bound. useProjectGitSync.buildPushArgs() returns null when project.git is absent (src/composables/useProjectGitSync.ts:47), so "Save" silently falls back to local-only and nothing ever reaches git. Because binding never happens, neither git sync nor backend project registration can occur downstream.

What already exists

  • ProjectGitBinding type is fully defined — src/composables/useProjectGitSync.ts:19-31.
  • inventoryStore holds configured git sources + PATs (src/stores/inventoryStore.ts).
  • ProjectRepoAdapter supports both shared_repo_subdir and dedicated_repo strategies.
  • Project creation entry points: src/views/CatalogList.vue:108, src/views/CatalogEntryDetail.vue:182,196 (currently projectStore.createProject() → localStorage only).

Work

  • GitBindingModal.vue: pick source (from inventoryStore), repo owner/name, branch strategy (shared_repo_subdir | dedicated_repo), subdir.
  • Persist binding to project.git (extend the project model in projectStore.js).
  • "Link to Git" affordance in the editor settings tab.
  • Auto-bind when forking from a catalog entry that already has a git source (CatalogEntryDetail.vue).

Dependencies / relations

Size: L (~150 lines incl. modal + source picker).

Metadata

Metadata

Assignees

No one assigned

    Labels

    featNew feature or requesttrack_axis-02Operational end-user interfaces

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions