https://github.com/open-vcs/openvcs-plugin-git
Reference Git backend plugin for OpenVCS. Implements Git support using the OpenVCS plugin protocol. Experimental and subject to change.
https://github.com/open-vcs/openvcs-plugin-git
git plugin
Last synced: 8 days ago
JSON representation
Reference Git backend plugin for OpenVCS. Implements Git support using the OpenVCS plugin protocol. Experimental and subject to change.
- Host: GitHub
- URL: https://github.com/open-vcs/openvcs-plugin-git
- Owner: Open-VCS
- License: gpl-3.0
- Created: 2025-12-27T19:41:45.000Z (5 months ago)
- Default Branch: Dev
- Last Pushed: 2026-04-20T00:09:10.000Z (23 days ago)
- Last Synced: 2026-04-20T02:30:57.780Z (23 days ago)
- Topics: git, plugin
- Language: TypeScript
- Homepage: https://openvcs.app
- Size: 2.41 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Git Plugin
This directory contains the System Git VCS backend plugin used by OpenVCS.
## Runtime model
- The plugin runs as a long-lived Node.js process.
- The plugin implements the JSON-RPC contract used by the backend runtime (`plugin.*` and `vcs.*`) through the shared SDK runtime delegates.
- The plugin can add top-level app menus and items through `@openvcs/sdk/runtime` helpers.
- The plugin can open generic plugin-owned modals with the SDK `ModalBuilder` helper.
- The Repository menu includes Git-only submodule management tooling.
- In the desktop client, the `Submodules` entry appears in `Repository` after a Git repository is open and the Git plugin runtime is active.
- Repository clone operations recurse into submodules by default.
- Repository status views tag tracked submodule paths distinctly so the client can render them as submodules.
- Git operations are executed through the local `git` CLI.
- The runtime uses a trust model (no per-capability permission prompts).
## Install
```bash
npm install
```
- The SDK dependency tracks the `edge` tag so it always follows the latest SDK commit.
## Validate
```bash
npm run lint
```
## Build
```bash
npm run build
```
- TypeScript sources live in `src/`.
- `npm run build` runs `openvcs build`, which invokes `build:plugin` and writes the runtime into `bin/`.
## Test
```bash
npm test
```
Submodule workflow highlights:
- `clone_repo` uses `git clone --recurse-submodules`.
- Repository > Submodules supports add, sync, remove, pinned updates, and explicit remote-tracking updates.
- `Update Remote` follows the branch configured for each submodule in `.gitmodules`.
## Pack For Config Use
```bash
npm pack
```
- `npm pack` uses the package `files` list and `prepack` hook.
- OpenVCS resolves published packages and local path plugins through npm package semantics.
## Release Channels
CI publishes prereleases with these dist-tags:
- `latest`: stable releases from `Stable`
- `beta`: builds from the `Beta` branch
- `nightly`: scheduled builds from `Dev` when changes exist since the last nightly
- `edge`: working builds from `Dev` push commits
Examples:
```bash
npm install @openvcs/git-plugin@edge
npm install @openvcs/git-plugin@beta
npm install @openvcs/git-plugin@nightly
```