VS Code / Cursor extension that adds Sync all for every eligible Git repository in the workspace: one action in the Source Control → CHANGES header, then fetches and synchronizes changed repositories according to your settings.
Requires the built-in Git extension (vscode.git) and VS Code ^1.85 (see engines in package.json).
Where is the button?
Menu:scm/title, group navigation
Visibility:when: view == workbench.scm so the control appears on the CHANGES view title bar only (same idea as the built-in tree/list toggles), not duplicated on each repository row for this command.
Native Git icons on each repo row (sync, pull, push, etc.) are not from this extension; you can hide those separately via the toolbar context menu or Git-related settings.
Behavior
Uses the Git extension API only (repo.fetch(), repo.pull(), repo.push()), not git.* palette commands, so you should not get a “Choose a repository” picker from this flow.
Optionally skips dirty repos and always skips repositories without an upstream branch (default: skip dirty = on).
Fetches and synchronizes each remaining repository in the same bounded parallel queue. A repository starts its pull or push as soon as its fetch finishes; it does not wait for the slowest repository's fetch.
Writes a full log to Output → “Sync All Repositories” ([OK] / [FAIL] per path, including duration).
Features
Single Sync all entry next to other CHANGES actions (Codicon repo-sync on the command).