Stop wasting time documenting solutions. Publish in one command.
GitGo is a VS Code extension that publishes solved coding problems to GitHub using a single command by automating folder creation, README generation, screenshot handling, and Git operations.
Write Code → Run Publish Solution → Done.
Developers who regularly solve coding problems and maintain GitHub repositories must manually:
- Create problem folders
- Decide naming conventions
- Copy and rename solution files
- Write README files
- Add screenshots
- Run git commands
- Create branches and pull requests
Because this workflow is long and repetitive:
- Repositories become inconsistent
- Folder structures become messy
- Developers stop documenting
- Solutions remain unpublished
Publishing a solution is treated as many independent steps instead of a single atomic operation.
GitGo converts solution publishing into one atomic pipeline executed by a single command.
Everything required to publish a solution is handled automatically.
No terminal usage.
No manual file handling.
No README writing.
No git commands.
- Open VS Code
- Go to Extensions (
Ctrl + Shift + X) - Search GitGo
- Click Install
- Open a solution file
- Press
Ctrl + Shift + P - Run GitGo: Publish Solution
- Follow prompts
Your solution is published automatically.
GitGo exposes the following VS Code commands:
-
GitGo: Publish Solution
Runs the complete solution publishing pipeline. -
GitGo: Change Repository
Change or reset the target GitHub repository used for publishing.
Access commands using:
Ctrl + Shift + P → Type GitGo
- Open your solution file in VS Code
- Press
Ctrl + Shift + P - Run GitGo: Publish Solution
- Select problem type (LeetCode / Normal)
- If LeetCode:
- Enter difficulty
- Enter execution time
- Choose parent folder
- Enter problem folder name
GitGo will automatically:
- Create the folder
- Copy and rename solution file
- Generate README
- Attach screenshots
- Commit changes
- Push to GitHub or create a Pull Request
On first run, GitGo will ask for:
- Repository path
- Author name
- GitHub profile link
- Default push mode
These values are saved and reused automatically.
- Git installed
- Git configured with GitHub
- Existing GitHub repository
- DSA / LeetCode practitioners
- Interview preparation students
- Developers maintaining solution repositories
One Command = One Complete Publish Pipeline
Either everything succeeds or nothing is written.
GitGo uses a modular service-based architecture:
- Language detection
- Filename standardization
- Problem type handling
- Metadata prompts
- Folder creation
- File copying
- README generation
- Screenshot handling
- Repository setup
- Default branch detection
- Git automation
- PR description generation
Each module has a single responsibility.
- TypeScript
- VS Code Extension API
- Node.js
- esbuild
- Git CLI
- Node core modules
Each published problem produces:
- One solution file
- One README
- One test case screenshot
- One submission screenshot
Structure is consistent across all problems.
Regardless of original filename, solutions are renamed to a consistent format to guarantee uniformity across the repository.
Generated README contains:
- Problem name
- Programming language
- Difficulty
- Execution time
- Code explanation
- Concepts used
- Screenshots
- File information
- Author
Generated README contains:
- Problem name
- Short description
- Files
- Screenshot
- Author
GitGo supports two publishing modes:
Solution is committed and pushed directly to the default branch.
GitGo creates a new branch, commits the solution, pushes it, and generates a pull request.
GitGo automatically detects the repository’s default branch, even if it is not named main or master.
User configurable:
- Author name
- GitHub URL
- LinkedIn URL
- Default push mode
- Default problem type
- Repository path
GitGo remembers:
- Repository path
- Author details
- Last used parent folder
No repeated setup.
- All operations executed through safe wrappers
- Friendly error messages
- Automatic rollback on failure
- No partial publishes
- No credentials stored
- Uses existing git authentication
GitGo follows a layered, pipeline-driven architecture centered around a single atomic publishing workflow.
The system is orchestrated by a Publish Pipeline Orchestrator, which coordinates metadata collection, file preparation, README generation, screenshot handling, and Git operations in a deterministic and transactional sequence.
- VS Code Extension Host
GitGo: Publish Solutioncommand- Command registration and activation
- Publish Pipeline Orchestrator
- Controls complete execution flow
- Ensures ordered stage execution
- Handles success/failure resolution
- Enforces atomic transaction model
Builds a single PublishContext object used across all stages.
Includes:
- Problem Type Selector
- Difficulty Prompt
- Execution Time Prompt
- Parent Folder Selector
- Push Mode Selector
- Author Prompt
Output:
PublishContext- Problem metadata
- Author details
- Push mode
- Repository path
- Language
- File paths
Stage 1 — Directory Preparation
- FolderCreator
- FileSystemAdapter
Stage 2 — Solution Preparation
- LanguageDetector
- SolutionFileNameResolver
- FileCopier
Stage 3 — README Generation
- TemplateLoader
- ReadmeGenerator
- LeetCodeTemplate / NormalTemplate
Stage 4 — Screenshot Handling
- ScreenshotHandler
- File normalization and validation
Stage 5 — Git Transaction
- DefaultBranchDetector
- GitService
- PRGenerator
- Git CLI execution
- Push to GitHub
- File system abstraction
- Git automation layer
- VS Code API adapter
- Settings repository (memory persistence)
GitGo enforces:
One Command = One Complete Publish Pipeline
- All stages must succeed
- On failure → automatic rollback
- No partial repository state
- Clear error reporting
- Deterministic pipeline execution
- Strong separation of concerns
- Modular stage-based design
- Infrastructure abstraction
- Zero partial side effects
- Idempotent Git operations
- Persistent configuration memory
- Core pipeline complete
- Settings UI complete
- Memory features implemented
- Error guarding implemented
- Ready for Marketplace packaging
- Sujal Patil – https://github.com/SujalPatil21
- Shreya Awari – https://github.com/shreyaawari28
- Tejas Halvankar – https://github.com/Tejas-H01
- Nihal Mishra – https://github.com/NihalMishra3009
MIT License
