home / skills / yousufjoyian / claude-skills / github

github skill

/github

This skill helps you manage GitHub repositories via SSH by cloning, pulling, and pushing changes efficiently.

npx playbooks add skill yousufjoyian/claude-skills --skill github

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.7 KB
---
name: github
description: Clone, pull, and manage GitHub repositories using SSH authentication. Handles yousufjoyian repos and third-party repos.
---

# GitHub Repository Manager

This skill manages GitHub repositories via SSH - cloning, pulling, and pushing code.

## Account Details

| Setting | Value |
|---------|-------|
| Username | `yousufjoyian` |
| SSH Key | `~/.ssh/github_ed25519` |
| Default Clone Location | `/home/yousuf/local_workspaces/` |

## When to Use This Skill

- Cloning a repository from GitHub
- Pulling latest changes from a repo
- Pushing commits to GitHub
- Checking repo status
- Listing user's repositories

## What This Skill Does

1. **Clone Repos**: Downloads repositories via SSH
2. **Pull Updates**: Fetches and merges latest changes
3. **Push Changes**: Uploads commits to GitHub
4. **Smart Defaults**: Assumes `yousufjoyian/` for bare repo names

## How to Use

### Clone Your Own Repo

```
Pull triclaude
```

```
Clone my youtube-transcripts repo
```

```
Get repo living-contract
```

### Clone Someone Else's Repo

```
Clone anthropics/claude-code
```

```
Pull microsoft/vscode
```

### Update Existing Repo

```
Update triclaude with latest changes
```

```
Pull latest on youtube-transcripts
```

### Push Changes

```
Push my changes to triclaude
```

## Commands Reference

### Clone a repo (yousufjoyian)
```bash
git clone [email protected]:yousufjoyian/<repo>.git /home/yousuf/local_workspaces/<repo>
```

### Clone third-party repo
```bash
git clone [email protected]:<owner>/<repo>.git /home/yousuf/local_workspaces/<repo>
```

### Pull latest
```bash
cd /home/yousuf/local_workspaces/<repo> && git pull
```

### Push changes
```bash
cd /home/yousuf/local_workspaces/<repo> && git push
```

### Check status
```bash
cd /home/yousuf/local_workspaces/<repo> && git status
```

### Test SSH connection
```bash
ssh -T [email protected]
```

## Workflow

1. **Parse repo name**:
   - `triclaude` → `yousufjoyian/triclaude`
   - `anthropics/claude-code` → `anthropics/claude-code`

2. **Check if exists locally**:
   - If `/home/yousuf/local_workspaces/<repo>/` exists → `git pull`
   - Otherwise → `git clone`

3. **Execute and report**:
   - Show clone/pull output
   - Report final path

## Trigger Words

| Phrase | Action |
|--------|--------|
| "pull", "clone", "get repo" | Clone or pull repo |
| "push", "upload" | Push commits |
| "github pull", "fetch from github" | Clone/pull |
| "update repo" | Git pull |

## Example Session

**User**: "Pull triclaude"

**Assistant**:
```
Cloning yousufjoyian/triclaude...

git clone [email protected]:yousufjoyian/triclaude.git /home/yousuf/local_workspaces/triclaude

Cloning into '/home/yousuf/local_workspaces/triclaude'...
remote: Enumerating objects: 245, done.
remote: Counting objects: 100% (245/245), done.
Receiving objects: 100% (245/245), 1.2 MiB | 5.00 MiB/s, done.

Done: /home/yousuf/local_workspaces/triclaude/
```

## Related Skills

| Skill | Purpose |
|-------|---------|
| `git-commit` | Local commits with smart staging and message crafting |

**Workflow:** Use `git-commit` skill for staging and committing locally, then this skill for push/pull.

## Troubleshooting

| Issue | Solution |
|-------|----------|
| Permission denied (publickey) | Run `ssh-add ~/.ssh/github_ed25519` |
| Repository not found | Check repo name/owner spelling |
| Already exists | Use `git pull` instead of clone |
| Merge conflicts on pull | Resolve conflicts manually or stash changes |

## SSH Setup (Already Configured)

Key location: `~/.ssh/github_ed25519`

If SSH agent needs the key:
```bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/github_ed25519
```

Verify connection:
```bash
ssh -T [email protected]
# Expected: Hi yousufjoyian! You've successfully authenticated...
```

Overview

This skill manages GitHub repositories over SSH: cloning, pulling, pushing, and reporting status. It uses a configured SSH key and smart defaults to assume repositories under the yousufjoyian account when an owner is omitted. Default workspace location and key paths are applied automatically.

How this skill works

Given a repo name or owner/repo string, the skill resolves the full GitHub SSH URL and the local path under /home/yousuf/local_workspaces/. If the repo folder exists locally it runs git pull; otherwise it runs git clone using [email protected]:. It runs commands via the configured SSH key (~/.ssh/github_ed25519), captures output, and returns the final path and command results.

When to use it

  • Clone a repository quickly to the local workspace
  • Update a local repository with the latest changes (git pull)
  • Push committed changes from the local workspace to GitHub
  • Check repository status and sync state
  • Operate on either your repos (default owner) or third-party repos

Best practices

  • Use short repo names to rely on the default owner (yousufjoyian/) or specify owner/repo to target others
  • Ensure SSH key is loaded (ssh-add ~/.ssh/github_ed25519) before running commands
  • Work from the local path /home/yousuf/local_workspaces/<repo> for consistency
  • Run git status and resolve or stash local changes before pulling to avoid merge conflicts
  • Verify SSH connectivity with ssh -T [email protected] when encountering permission errors

Example use cases

  • Clone my youtube-transcripts repo: resolves to yousufjoyian/youtube-transcripts and clones to local workspace
  • Pull triclaude: detects local folder and runs git pull to fetch updates
  • Clone anthropics/claude-code: clones a third-party repo into the default workspace
  • Push my changes to triclaude: cd into the repo and run git push using the configured SSH key
  • Check status of living-contract: runs git status and reports uncommitted changes

FAQ

What SSH key and path does this skill use by default?

It uses ~/.ssh/github_ed25519 as the SSH key and /home/yousuf/local_workspaces/ as the default clone location.

What happens if the repo already exists locally?

The skill runs git pull inside /home/yousuf/local_workspaces/<repo> to update the repository instead of cloning.

How do I fix permission denied (publickey) errors?

Load the key into your agent with eval "$(ssh-agent -s)" and ssh-add ~/.ssh/github_ed25519, and verify with ssh -T [email protected].