Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

RepoShelf

RepoShelf — Remote-first repository workspaces for VS Code

Remote-first repository workspaces for VS Code.

RepoShelf lets you browse repositories without cloning every project, then materialize a controlled partial/sparse or full local workspace only when normal editing and Git tooling are needed. GitLab is the first implemented provider; the product identity and architecture remain provider-neutral.

Important

RepoShelf is pre-release software. Phase 4 implementation is complete, with native Windows destructive-path validation still required as a release gate. Closing a window never authorizes workspace deletion.

Current capabilities

  • Connect to one self-managed GitLab instance with a PAT stored in VS Code SecretStorage.
  • Browse groups, projects, branches, and repository trees lazily.
  • Open immutable, read-only remote files pinned to a full commit SHA.
  • Compare a pinned file with the same path on another branch.
  • Materialize full or partial+sparse Git workspaces through native Git.
  • Validate clone roots, origins, branches, commits, sparse scope, and private ownership markers before creating or reusing a managed workspace.
  • Run a read-only, fail-closed managed-workspace safety assessment covering ownership, containment, dirty/unsaved state, Git operations, remote reachability, and local-only refs.
  • Push committed work to an explicit managed branch, verify the remote result, and release only the proven local checkout after explicit confirmation.
  • Keep remote file content in a bounded memory-only cache.

See PHASED-PLAN.md for scope and sequencing. Design and security contracts are under docs/phase-0, with implementation records for Phase 1, Phase 2, Phase 3, and Phase 4.

Safety and privacy

  • RepoShelf does not collect telemetry.
  • API PATs are stored in VS Code SecretStorage and are never inserted into Git URLs or process arguments.
  • Native Git authentication is delegated to the host's HTTPS credential helper.
  • Remote source bodies are not persistently cached by RepoShelf.
  • Managed workspace release is fail-closed and never deletes remote data. Native Windows junction/reparse and open-handle validation remains mandatory before a production release.

Never include credentials, private repository content, internal URLs, project identifiers, usernames, or ownership-marker data in public issues or logs. See SECURITY.md for private vulnerability reporting.

Development

Requirements:

  • VS Code 1.137.0 or newer
  • Node.js 24 (the exact development pin is in mise.toml)
  • npm
  • Git for materialization tests
git clone https://github.com/jwhitten37-dev/RepoShelf.git
cd RepoShelf
npm ci
npm run check
npm run build

If you use mise, run commands through mise exec -- to use the pinned Node.js version.

Marketplace packaging and the Microsoft Entra workload-identity release process are documented in docs/PUBLISHING.md.

To exercise the extension UI, open the checkout in VS Code, select Run RepoShelf Extension in Run and Debug, and press F5. Use only an authorized test instance and least-privilege credentials.

Rename compatibility

RepoShelf is a clean-break rename of the pre-release GitLab On-Demand prototype. Old command IDs, settings, SecretStorage entries, remote URI schemes, extension state, default workspace roots, and ownership markers are not migrated. Existing prototype workspaces are not deleted; they must be inspected and managed manually.

Contributing and support

Read CONTRIBUTING.md before opening a pull request. Use GitHub Discussions for usage questions when available and GitHub Issues for reproducible bugs and approved feature proposals. The project is currently maintained on a best-effort basis; see SUPPORT.md.

License and trademarks

RepoShelf is licensed under the Apache License 2.0.

RepoShelf is an independent project and is not affiliated with, endorsed by, or sponsored by GitLab Inc., GitHub, Inc., or Microsoft Corporation. GitLab, GitHub, Visual Studio Code, and related marks belong to their respective owners.

About

Remote-first repository workspaces for VS Code.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages