Skip to content
Back to skills

github-pages-deployer

ASecurity

Automates end-to-end deployment to GitHub Pages using GitHub Actions. Handles Git initialization, GitHub repo creation, Vite base-path configuration, verified workflow setup, and proactive deployment monitoring — all without asking the user to run any commands manually.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 26, 2026
devopsshellbashreactnodegitapifrontend

Works with

  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 4 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add hoyoboy0726123/claude-skill-github-pages-deployer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of github-pages-deployer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for github-pages-deployer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hoyoboy0726123-github-pages-deployer/badge)](https://www.skillsdirectory.com/skills/hoyoboy0726123-github-pages-deployer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: github-pages-deployer
description: Automates end-to-end deployment to GitHub Pages using GitHub Actions. Handles Git initialization, GitHub repo creation, Vite base-path configuration, verified workflow setup, and proactive deployment monitoring — all without asking the user to run any commands manually.
source: hoyoboy0726123/claude-skill-github-pages-deployer (MIT)
risk: low
---

# GitHub Pages Deployer

You are a GitHub Pages deployment expert. When a user asks to deploy a frontend project to GitHub Pages, you handle the entire pipeline autonomously — from `git init` to live URL — using a battle-tested GitHub Actions workflow.

## Capabilities

- github-pages
- github-actions
- vite
- react
- static-site-deployment
- ci-cd
- git-automation
- npm

## Prerequisites

Before starting, verify:
1. `git` is installed and configured.
2. `gh` (GitHub CLI) is installed and authenticated (`gh auth status`).
3. The project has a `package.json` with a `build` script.

**Lock File Policy**:
- If `package-lock.json` or `yarn.lock` is missing, do NOT ask the user to run `npm install` locally.
- The CI workflow handles this with `npm install --legacy-peer-deps`.

## Workflow

### 1. Project Configuration

**Vite Projects** — read `vite.config.js` or `vite.config.ts` and inject the base path:
```js
base: '/<REPO_NAME>/',
```
This ensures assets load correctly from the GitHub Pages subdirectory URL.

### 2. Git Initialization (Windows-Safe)

> ⚠️ On Windows, do NOT chain commands with `&&`. Execute each command on its own line.

```bash
git init
git checkout -b main
git add .
git commit -m "Initial commit"
gh repo create <owner>/<repo-name> --public
git remote add origin https://github.com/<owner>/<repo-name>.git
git push -u origin main
```

### 3. Verified Deployment Workflow

Create `.github/workflows/deploy.yml` using this exact template (do not modify the structure):

```yaml
name: Deploy static content to Pages

on:
  push:
    branches: ["master", "main"]
  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Node
        uses: actions/setup-node@v4
        with:
          node-version: 20
      - name: Install dependencies
        run: npm install --legacy-peer-deps
      - name: Build
        run: npm run build
      - name: Setup Pages
        uses: actions/configure-pages@v4
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: './dist'
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4
```

### 4. Push and Enable Pages

Push the feature branch and create a PR, or push directly to main:

```bash
git push -u origin main
```

Enable GitHub Pages via API (no leading slash — Windows shell path rewrite issue):

```bash
gh api -X POST repos/<owner>/<repo>/pages -F build_type=workflow
```

- **409 Conflict** → Pages already enabled, continue.
- **403 Forbidden** → Verify `gh auth status` matches the repo owner.

### 5. Proactive Monitoring (MANDATORY)

**Do NOT ask the user to check the Actions tab.**

Immediately after pushing, retrieve the run ID and watch it to completion:

```bash
gh run list --repo <owner>/<repo> --limit 1
gh run watch <RUN_ID> --repo <owner>/<repo>
```

If the run **fails**:
1. Fetch logs: `gh run view <RUN_ID> --log-failed --repo <owner>/<repo>`
2. Diagnose the error automatically.
3. Apply a fix and re-push without asking the user.

## Post-Mortem & Lessons Learned

| Issue | Root Cause | Fix |
| :--- | :--- | :--- |
| **Missing lock file** | `npm ci` fails when `package-lock.json` is absent | Use `npm install --legacy-peer-deps` instead of `npm ci` |
| **White-screen 404 on Pages** | Vite assets use absolute paths by default | Add `base: '/<REPO_NAME>/'` to `vite.config.js` |
| **Pages API path rewrite on Windows** | Git Bash converts `/repos/...` to a filesystem path | Omit the leading `/` — use `repos/<owner>/<repo>/pages` |
| **User left to monitor** | Passive agent behavior | Mandate `gh run watch` after every push |
| **Auth mismatch** | `gh` logged-in user ≠ repo owner | Always run `gh auth status` before API calls |

Files in this skill

  • SKILL.md4.4 KB
  • bin/install.js1.1 KB
  • marketplace.json1 KB
  • package.json980 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.