1.0.0 โข Published 7 months ago
@kobonostudio/vite-plugin-github-deploy v1.0.0
๐ vite-plugin-github-deploy
A Vite plugin to automate GitHub deployment using git, gh CLI, and @octokit/rest.
Perfect for JAMStack, Webflow, or static sites needing CDN-ready delivery.
โจ Features
- ๐ SSH support + GitHub authentication (
gh auth login) - ๐ Pushes either:
- entire project (source + dist)
- or
dist/only
- ๐ง Smart detection of existing repositories
- ๐ Automatically creates repos via GitHub API (
@octokit/rest) - ๐งฐ Works with
starter.config.jsfor unified setup
โ๏ธ Supported Deployment Modes
| Mode | Description |
|---|---|
none | Skips deployment entirely |
public-only | Pushes full project (source + dist/) to a public repo |
split | Pushes source code to private repo, dist/ folder to public repo |
Each mode fits a different use case:
public-only: For simple public open-source projects.split: When your code is private but output must be public (e.g. CDN via jsDelivr).none: When you want to manage deployment manually.
๐ฆ Installation
npm install --save-dev @kobonostudio/vite-plugin-github-deploy๐ง Configuration (starter.config.js)
At your project root, create:
export default {
cdn: {
baseUrl: 'https://cdn.jsdelivr.net/gh',
user: 'your-github-username-or-org',
repo: 'your-public-repo',
branch: 'main',
org: true, // optional (true if you're using a GitHub org)
},
deploy: {
mode: 'split', // 'none' | 'public-only' | 'split'
publicRepo: 'webflow-assets',
privateRepo: 'webflow-source',
branch: 'main',
},
}๐ Usage in vite.config.js
import { defineConfig } from 'vite'
import githubDeployPlugin from '@kobonostudio/vite-plugin-github-deploy'
export default defineConfig({
plugins: [githubDeployPlugin()],
})๐ Trigger Deployment
Before deploying, you must manually build your project (e.g. with npm run build or npm run build:pages):
npm run build
#or
npm run build:pagesThen trigger deployment using the DEPLOY flag:
DEPLOY=true npm run buildThis will:
- โ
Verify
gitandghare installed - ๐ Ensure SSH key exists and is configured
- ๐ค Authenticate with GitHub CLI
- ๐ Create or detect GitHub repos
- ๐ Push files to correct repos based on deployment mode
๐งช Examples
โค public-only
- Project pushed entirely to
git@github.com:user/project.git - Ideal for public showcase or open source
โค split
dist/โ public repo (user/cdn-repo)- Source โ private repo (
user/source-repo) - Perfect for Webflow CDN or static assets
๐ What gets pushed?
| Folder | Mode | Repo type |
|---|---|---|
. (all) | public-only | Public |
dist/ | split | Public |
. (all) | split | Private |
๐ Requirements
- Node.js โฅ 18
gitinstalledghGitHub CLI (gh auth loginrequired)- SSH key (
id_ed25519) added to GitHub - Internet access
๐ง Author
Made with โค๏ธ by Pierre Lovenfosse
๐ License
MIT โ ยฉ Pierre Lovenfosse
1.0.0
7 months ago