git-deployer#
Deploy static site content to GitHub Pages or any git-backed host.
When to Use#
- GitHub Pages updates — You have a local build/output directory and want to push it to a
username.github.io repo or a Pages branch ( gh-pages, main)
- Static site deployment — Hugo, Jekyll, Gatsby, Docusaurus, or any static site with a git-hosted output
- Automated CI replacement — Instead of setting up GitHub Actions, you want a one-command deploy from your machine
- Syncing local → remote — You edit content locally and need to push changes to a hosted git repository
Workflow#
text
Local Site Directory → /tmp/clone → File Copy → Commit → Force Push → Done
- Clone or init — If the remote repo exists, clone it to
/tmp/{reponame}. Otherwise initialize a fresh clone
- Copy files — Sync your local site directory contents into the clone (clean copy, not append)
- Commit — Stage all files, commit with auto-generated timestamp message
- Force push — Push to remote with force flag to overwrite remote state
- Report — Output success/failure with commit hash and push result
Usage#
Via skill invocation (from agent)#
Provide the following arguments:
site_path — Absolute path to the local site directory (the content to deploy)
remote_url — Full git URL (e.g., https://github.com/user/repo.git or git@github.com:user/repo.git)
branch — Branch to deploy to (default: main)
Via script directly#
bash
./scripts/deploy.sh /path/to/site git@github.com:user/repo.git [branch]
Output#
- Success — Shows commit hash, remote URL, branch, and push status
- Failure — Shows error message with exit code and which step failed
Requirements#
git must be installed and configured with credentials for the remote
- SSH key or HTTPS token auth must be set up for the remote repository
- Site path must exist and contain files
Notes#
- Uses
--force push — this will overwrite remote state. Use with caution on shared branches
- Clone happens in
/tmp and is not cleaned up automatically (intentional: allows inspection)
- Commit message format:
Deploy: YYYY-MM-DD HH:MM:SS UTC