GitHub Pages Manager
Manage GitHub Pages websites entirely from inside VS Code: sign in, connect
repositories, detect frameworks, build, deploy via GitHub Actions, monitor,
roll back, configure custom domains, and diagnose failures — without leaving
the editor.
Features
- GitHub authentication via the VS Code authentication API (no passwords,
no plaintext tokens)
- Repository management — list, search, create, and connect local projects
- Project detection — Static HTML, React, Vite, Next.js, Vue, Angular,
Flutter Web, Astro, Svelte, and generic Node
- Build system — package-manager detection (npm/yarn/pnpm/bun) and local builds
- GitHub Pages deployment — generates a framework-aware
deploy-pages.yml workflow, commits, pushes, and monitors the run
- Deployment monitoring — poll GitHub Actions with backoff, view logs
- Deployment history & rollback — safe, non-destructive rollback commits
- Custom domains & HTTPS diagnostics — real DNS verification
- Multi-project dashboard — activity bar, sidebar tree, and a themed
webview dashboard
Installation
- Build and install the VSIX:
npm install
npm run compile
npm run package
- In VS Code, run Extensions: Install from VSIX... and pick
github-pages-manager-0.1.0.vsix.
Getting started
- Open your project folder in VS Code.
- Run GitHub Pages: Open Dashboard.
- Sign in with GitHub (the extension requests
repo + workflow scopes).
- GitHub Pages: Connect Repository to link the current folder.
- Run GitHub Pages: Deploy. The extension detects the framework, creates
.github/workflows/deploy-pages.yml if missing, builds, commits (after your
confirmation), pushes, and waits for GitHub Actions.
One-time manual step (documented GitHub API limitation): in
repo → Settings → Pages → Build and deployment, set Source to
GitHub Actions. There is no REST endpoint for this setting, so the
extension surfaces it in diagnostics and cannot change it automatically.
Supported frameworks
| Framework |
Detected via |
Build |
Output |
| Static HTML |
index.html |
— |
. |
| React / Vite |
vite.config.* |
npm run build |
dist |
| Next.js |
next.config.* |
npm run build |
— |
| Vue |
vue.config.* / vue dep |
npm run build |
dist |
| Angular |
angular.json |
npm run build |
dist |
| Astro |
astro.config.* |
npm run build |
dist |
| Svelte |
svelte.config.* |
npm run build |
build |
| Flutter Web |
pubspec.yaml |
flutter build web |
build/web |
| Generic Node |
package.json |
npm run build |
— |
Custom domains
Use GitHub Pages: Configure Custom Domain. The extension verifies DNS
before claiming anything: it checks for a CNAME to
<username>.github.io or GitHub Pages apex A records
(185.199.108.153 … 185.199.111.153).
Troubleshooting
- Deployment failed / workflow did not run — confirm Pages → Source is
GitHub Actions, then run GitHub Pages: Diagnose Project.
- Rate limit — the extension caches and only polls on demand; check the
output channel for limit headers.
- "No GitHub Actions run was created" — the workflow may already exist but
be named differently, or Pages is still set to a branch source.
Security
- Tokens are stored only in VS Code SecretStorage and requested per API call.
- Credentials are never logged, embedded in generated files, or sent anywhere
except
api.github.com.
- The dashboard uses a strict CSP with nonce-based scripts, and every webview
message is validated.
- Destructive Git operations (rollback, branch deletion) require explicit
modal confirmation. The extension never force-pushes or rewrites history.
FAQ
Do I need a token or password? No. Authentication uses the VS Code GitHub
provider.
Can I deploy without committing? Yes — choose Deploy Without Commit when
prompted.
Are private repos supported? Yes, for Actions workflows and private Pages.
What about VITE_* env vars? A static frontend can never keep secrets
private; the extension warns accordingly.
License
See LICENSE.
| |