Skip to content
Back to skills

Website Repo

ASecurity

Creates a GitHub repository for the website project, initializes git, and pushes the code.

  • 391 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 28, 2026
securitybashnodegit

Works with

  • vscode
  • cli

Security analysis

A100/100

Scanned May 28, 2026

npx -y skills add GRCEngClub/claude-grc-engineering --skill website-repo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Website Repo?

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

Security grade badge for Website Repo
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/grcengclub-website-repo/badge)](https://www.skillsdirectory.com/skills/grcengclub-website-repo)

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: website-repo
description: Creates a GitHub repository for the website project, initializes git, and pushes the code.
allowed-tools: Bash, Read, Write, Edit, Glob
---

# Website Repo Skill

You are running the `/grc-portfolio:repo` skill. Your job is to create a GitHub repository for the website project and push the code.

## Step 1: Locate and Validate Config

Find `site-config.json`:
- Check `$ARGUMENTS` for a project directory path
- Check the current working directory
- Ask the user if not found

Read it and validate that `status.buildComplete === true`. If not, tell the user to run `/grc-portfolio:build` first.

## Step 2: Verify Prerequisites

Check that `gh` CLI is installed and authenticated:
```bash
gh --version
gh auth status
```

If not installed, tell the user to run:
```bash
brew install gh
gh auth login
```

## Step 3: Ask Repository Details

Ask the user:
- **Repo name** (suggest `projectName` from config)
- **Visibility**: public or private (default: private)

## Step 4: Ensure .gitignore

Check if `.gitignore` exists in the project directory. If not, create one:
```
# Dependencies
node_modules/

# Build output
dist/

# Environment variables
.env
.env.local
.env.production

# OS files
.DS_Store
Thumbs.db

# IDE
.vscode/
.idea/

# Logs
*.log
npm-debug.log*

# Lambda packages
lambda/*.zip
```

If it exists, verify it includes at least `node_modules`, `dist`, `.env`, `.env.local`, and `.DS_Store`. **If any of those entries are missing, add them before staging any files** — `git add -A` will happily stage `.env.local` with secrets in it otherwise.

## Step 5: Initialize Git and Commit

```bash
cd <projectDir>
git init
```

Before staging, confirm `.env*` files are ignored:

```bash
git check-ignore -q .env .env.local 2>/dev/null && echo "ok: env files ignored"
```

If that fails (exit code 1), stop and fix `.gitignore` — do not run `git add -A` until env files are ignored.

```bash
git add -A
# Sanity check: nothing under .env* should be staged.
if git diff --cached --name-only | grep -E '^\.env(\.|$)'; then
  echo "ERROR: env file staged — unstage it and fix .gitignore" >&2
  exit 1
fi
git commit -m "Initial commit: scaffolded GRC portfolio website"
```

## Step 6: Create GitHub Repo and Push

```bash
gh repo create <repoName> --<visibility> --source . --push
```

This creates the repo on GitHub, sets the remote, and pushes the code.

## Step 7: Update Config

Get the repo URL and owner:
```bash
gh repo view --json url,owner
```

Update `site-config.json`:
- Set `github.repoName` to the repo name
- Set `github.repoUrl` to the full URL
- Set `github.owner` to the owner login
- Set `github.visibility` to public/private
- Set `status.repoCreated = true`

## Step 8: Summary

Tell the user:
- The repo was created at `<github.repoUrl>`
- The code has been pushed
- Suggest running `/grc-portfolio:infra` next (if not done) or `/grc-portfolio:cicd` to set up continuous deployment

## Variables

- `$ARGUMENTS` = arguments passed after `/repo` (expected: project directory path)

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.