Depi Browser
VS Code extension for browsing and managing resources and dependency links in Depi. It opens the Blackboard (pending changes) and dependency graphs, and includes built-in support for git resources.
Other tool-specific extensions can plug in so you can reveal and diff non-git resources from the same graphs.
For local development, debugging, and packaging a .vsix, see DEVELOPER.md.
Prerequisites
- A running depi-server that you can reach from this machine.
- For git resources: a local clone of the repository, with a remote that matches a git resource-group already known to Depi.
- That repository should also send webhook events to the git-monitor, so Depi is notified when resource versions change.
The Git extension that ships with VS Code must be enabled (vscode.git).
Open user settings JSON (Ctrl/Cmd + Shift + P, then Preferences: Open User Settings (JSON)) and set at least the server URL and user name:
{
"depi.url": "127.0.0.1:5150",
"depi.user_name": "demo"
}
Log in and sessions
The first Depi command you run prompts for the password of depi.user_name (123456 for demo). After a successful login you get a session; the extension pings the server in the background.
- Use Depi: Create new Session if login was cancelled, the session expired, or you need to reconnect.
- If the server becomes unreachable, the extension reports that and reconnects when the ping succeeds again.
Logs from the extension appear in the Depi output channel.
Explorer decorations (git)
Once you are logged in, files and folders that exist in Depi are marked in the Explorer:
- D (blue) — tracked in Depi
- B (green) — currently on the Blackboard (uncommitted Depi changes)
Hover the badge for the resource-group name. Decorations follow the folder tree, so a parent folder can show as tracked when a child is in Depi.
The workspace folder must be a git clone whose remote URL matches a Depi git resource-group.
Blackboard
The Blackboard is the staging area for Depi: new or changed resources and links sit there until you commit them.
Ctrl/Cmd + Shift + P and run Depi: Blackboard.
- Log in if prompted.
- Edit in the graph: new resources are highlighted in green until the Blackboard is committed.
Links you draw (arrows around a box) mean the source depends-on the target.
Add git resources
- Open a local clone of the repository (see Prerequisites).
- In the Explorer, right-click a file or folder.
- Choose Add to Depi Blackboard.
- Optionally pick an existing Depi resource as a dependency; otherwise the resource is only added to the Blackboard.
- The Blackboard editor opens. Connect further resources if needed, then commit from the graph.
You can also run Depi: Select Depi Resource from the command palette to pick a resource by resource-group.
Dependency graphs
From a git file or folder already in Depi, right-click in the Explorer:
- Show Dependency Graph — resources this one depends on
- Show Dependents Graph — resources that depend on this one
If the file is not in Depi, you get an error and nothing is opened.
From a graph you can reveal a git resource in the editor or open it on Gitea, GitLab, or GitHub, depending on depi.git_collaboration_platform. Diff against the last clean version is available for those platforms as well (other cannot open diffs).
Commands
| Command |
Where |
What it does |
| Depi: Blackboard |
Command palette |
Open the Blackboard graph |
| Depi: Create new Session |
Command palette |
Log out and log in again |
| Depi: Select Depi Resource |
Command palette |
Pick a resource-group, then a resource |
| Add to Depi Blackboard |
Explorer context menu |
Stage a git file or folder on the Blackboard |
| Show Dependency Graph |
Explorer context menu |
Graph of dependencies for a git resource |
| Show Dependents Graph |
Explorer context menu |
Graph of dependents for a git resource |
Commands for other extensions
Other extensions can open the same UIs and resolve resources. See package.json contributes.commands and the registrations in src/extension.ts. Useful entry points include:
depi.showBlackboard
depi.showDependencyGraph / depi.showDependantsGraph (pass a Depi Resource)
depi.selectDepiResource
depi.getDepiToken
depi.revealDepiResource / depi.viewResourceDiff
For non-git tools, an extension can declare depi.toolId, depi.revealCmd, and depi.viewDiffCmd in its own package.json so the graph can reveal and diff those resources.
A complete example is vscode-template. The S3 tool is vscode-depi-s3.
Acknowledgements
This work was supported by the DARPA Assured Autonomy program and Air Force Research Laboratory. Any opinions, findings,
and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect
the views of DARPA or AFRL.
caid-dev@vanderbilt.edu