{"id":48582541,"url":"https://github.com/zircote/gh","last_synced_at":"2026-04-08T17:34:16.653Z","repository":{"id":333061496,"uuid":"1136087789","full_name":"zircote/gh","owner":"zircote","description":"Claude Code plugin with 12 git workflow commands, GitHub Copilot configuration, and multi-CI migration tools","archived":false,"fork":false,"pushed_at":"2026-02-27T22:52:19.000Z","size":140,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-28T03:44:10.729Z","etag":null,"topics":["ci-cd","claude-code","claude-code-plugin","copilot","git-workflow","github","github-actions","migration"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zircote.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"zircote"}},"created_at":"2026-01-17T03:32:07.000Z","updated_at":"2026-02-27T22:52:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zircote/gh","commit_stats":null,"previous_names":["zircote/gh"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zircote/gh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fgh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fgh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fgh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fgh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zircote","download_url":"https://codeload.github.com/zircote/gh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fgh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31567056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci-cd","claude-code","claude-code-plugin","copilot","git-workflow","github","github-actions","migration"],"created_at":"2026-04-08T17:34:16.170Z","updated_at":"2026-04-08T17:34:16.624Z","avatar_url":"https://github.com/zircote.png","language":"Python","funding_links":["https://github.com/sponsors/zircote"],"categories":[],"sub_categories":[],"readme":"# gh Plugin\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Claude Code Plugin](https://img.shields.io/badge/Claude_Code-Plugin-blueviolet)](https://github.com/anthropics/claude-code)\n[![CI](https://github.com/zircote/gh/actions/workflows/ci.yml/badge.svg)](https://github.com/zircote/gh/actions/workflows/ci.yml)\n[![Version](https://img.shields.io/badge/version-0.5.0-green.svg)](https://github.com/zircote/gh/releases)\n\nGitHub ecosystem integration with streamlined git workflows, Copilot coding agent configuration, and multi-CI migration tools.\n\n## Installation\n\n```bash\nclaude plugin install zircote/gh\n```\n\n## Verify Installation\n\nAfter installing, verify the commands and agent are available:\n\n```bash\n# Test git workflow command (dry run)\nclaude \"/gh:prune\"\n\n# Verify gh CLI is authenticated\ngh auth status\n\n# Test Copilot onboarding (shows help without modifying files)\nclaude \"What does the /gh:copilot-onboard command do?\"\n```\n\nYou should see the prune command show stale branches (if any) and confirmation that gh CLI is authenticated.\n\n## Contents\n\n| Component | Count | Description |\n|-----------|-------|-------------|\n| Commands | 12 | Git workflow and GitHub integration commands |\n| Agents | 1 | Copilot onboarding specialist |\n| Skills | 1 | GitHub ecosystem configuration |\n\n## Commands\n\n### Git Workflow Commands\n\n| Command | Description | Arguments |\n|---------|-------------|-----------|\n| `/gh:cp` | Stage, commit, and push all changes | - |\n| `/gh:pr` | Create a pull request via `gh` CLI | `[to-branch] [from-branch]` |\n| `/gh:fr` | Fetch and rebase onto remote branch | `[remote] [branch]` |\n| `/gh:sync` | Full sync: fetch, rebase, push | `[remote] [branch]` |\n| `/gh:ff` | Fast-forward merge only | `[remote] [branch]` |\n| `/gh:prune` | Clean up stale local branches | `[--force]` |\n\n### Copilot, Migration \u0026 Review Commands\n\n| Command | Description | Arguments |\n|---------|-------------|-----------|\n| `/gh:copilot-onboard` | Configure repo for GitHub Copilot coding agent | `[repository-path]` |\n| `/gh:onboard` | Alias for copilot-onboard | `[repository-path]` |\n| `/gh:migrate` | Migrate multi-CI to GitHub Actions | `[--ci=TYPE]` |\n| `/gh:ci-assist` | Onboard repository to GitHub ecosystem | - |\n| `/gh:pr-fix` | Complete PR remediation workflow | `[pr-number]` |\n| `/gh:review-comments` | Process PR review comments with assessment \u0026 remediation | `[pr-number] [--auto\\|--interactive]` |\n\n## Command Details\n\n### `/gh:cp` - Commit and Push\n\nStages, commits, and pushes all changes with smart commit message generation:\n\n```bash\n/gh:cp\n```\n\nFeatures:\n- Reviews all changes for sensitive data (API keys, credentials)\n- Generates conventional commit messages (`feat:`, `fix:`, `refactor:`, etc.)\n- Splits new files and modifications into separate commits\n- Never adds AI attribution signatures\n\n### `/gh:pr` - Create Pull Request\n\nCreates a pull request using the GitHub CLI:\n\n```bash\n/gh:pr                    # PR to main from current branch\n/gh:pr develop            # PR to develop from current branch\n/gh:pr main feature/auth  # PR to main from feature/auth\n```\n\nRequires: `gh` CLI installed and authenticated\n\n### `/gh:fr` - Fetch and Rebase\n\nFetches from remote and rebases current branch:\n\n```bash\n/gh:fr                    # Rebase onto origin/current-upstream\n/gh:fr upstream           # Rebase onto upstream/...\n/gh:fr origin main        # Rebase onto origin/main\n```\n\nIncludes conflict resolution guidance if rebase fails.\n\n### `/gh:sync` - Full Sync Cycle\n\nComplete synchronization: fetch, rebase, and push with confirmation:\n\n```bash\n/gh:sync\n/gh:sync origin main\n```\n\nFeatures:\n- Pre-flight checks for uncommitted changes\n- Shows incoming commits before rebasing\n- Confirms before pushing\n- Conflict resolution assistance\n\n### `/gh:ff` - Fast-Forward Only\n\nUpdates branch via fast-forward merge (no history rewriting):\n\n```bash\n/gh:ff\n/gh:ff origin main\n```\n\nFails gracefully if fast-forward isn't possible, offering alternatives.\n\n### `/gh:prune` - Clean Up Branches\n\nRemoves stale local branches that have been merged or deleted on remote:\n\n```bash\n/gh:prune          # Dry run - shows what would be deleted\n/gh:prune --force  # Actually delete stale branches\n```\n\n### `/gh:copilot-onboard` - Copilot Configuration\n\nConfigures a repository for GitHub Copilot coding agent:\n\n```bash\n/gh:copilot-onboard\n/gh:copilot-onboard /path/to/repo\n```\n\nGenerates:\n- `.github/copilot-instructions.md` - Repository-wide instructions\n- `.github/workflows/copilot-setup-steps.yml` - Environment setup\n- `.github/instructions/*.instructions.md` - Scoped instructions\n\nCross-references with existing `CLAUDE.md` to avoid duplication.\n\n### `/gh:migrate` - CI Migration\n\nMigrates from various CI systems to GitHub Actions:\n\n```bash\n/gh:migrate              # Auto-detect CI system\n/gh:migrate --ci=jenkins # Migrate from Jenkins\n```\n\nSupports: Jenkins, CircleCI, GitLab CI, Travis CI, Azure Pipelines, Bitbucket Pipelines, Concourse, Drone, TeamCity\n\n### `/gh:review-comments` - Process PR Review Comments\n\nProcesses GitHub PR review comments with validity assessment, remediation, and response generation:\n\n```bash\n/gh:review-comments              # Current branch's PR, interactive mode\n/gh:review-comments 123          # Specific PR, interactive mode\n/gh:review-comments 123 --auto   # Auto-process with default thresholds\n/gh:review-comments --dry-run    # Preview actions without executing\n```\n\n**Flags:**\n- `--auto` - Non-interactive: auto-accept findings with \u003e=85% confidence\n- `--interactive` - Prompt at each decision (default)\n- `--confidence=N` - Set auto-accept threshold (0-100, default: 85)\n- `--dry-run` - Show proposed actions without executing\n\n**Workflow:**\n\n1. **Fetches all review comments** from the PR\n2. **Categorizes** into: Code Review, Questions, Suggestions, Blockers, Approvals\n3. **Assesses validity** with confidence scoring (0-100%)\n4. **Prompts for decisions** (in interactive mode) or auto-processes\n5. **Remediates accepted findings** using appropriate specialist agents\n6. **Posts responses** to all comments with explanations\n7. **Resolves conversations** where appropriate\n\n## Agent\n\n### copilot-assistant\n\nGitHub Copilot coding agent onboarding specialist.\n\n**When to use:**\n- Configuring repositories for GitHub Copilot\n- Creating `copilot-instructions.md`\n- Setting up `copilot-setup-steps.yml` workflows\n- Aligning Copilot and Claude Code configurations\n\n**Invocation:**\n- Via `/gh:copilot-onboard` command\n- Direct agent call when discussing Copilot setup\n\n## Skill\n\n### github-ecosystem\n\nGenerates comprehensive GitHub repository configuration.\n\n**Components generated:**\n- CI/CD workflows (ci.yml, release.yml, docker.yml)\n- Issue templates (bug report, feature request)\n- PR template with checklist\n- CODEOWNERS file\n- Dependabot configuration\n- Copilot instructions\n\n**Supported languages:**\n- Python (pyproject.toml detection)\n- Go (go.mod detection)\n- TypeScript (package.json + tsconfig.json detection)\n\n**Usage:**\n```bash\n# In conversation\n\"Set up GitHub ecosystem for this Python project\"\n\n# Or via trigger phrases\n\"Add GitHub Actions to this repo\"\n\"Create issue templates\"\n\"Configure dependabot\"\n```\n\n## File Structure\n\n```\ngh/\n├── .claude-plugin/\n│   └── plugin.json\n├── agents/\n│   └── copilot-assistant.md\n├── commands/\n│   ├── ci-assist.md\n│   ├── copilot-onboard.md\n│   ├── cp.md\n│   ├── ff.md\n│   ├── fr.md\n│   ├── migrate.md\n│   ├── onboard.md\n│   ├── pr-fix.md\n│   ├── pr.md\n│   ├── prune.md\n│   ├── review-comments.md\n│   └── sync.md\n├── skills/\n│   └── ecosystem/\n│       ├── SKILL.md\n│       ├── references/\n│       └── scripts/\n├── CHANGELOG.md\n├── LICENSE\n└── README.md\n```\n\n## Troubleshooting\n\n### `gh` CLI Not Found\n\nInstall and authenticate the GitHub CLI:\n\n```bash\n# macOS\nbrew install gh\ngh auth login\n\n# Linux\nsudo apt install gh\ngh auth login\n\n# Windows\nwinget install GitHub.cli\ngh auth login\n```\n\n### Rebase Conflicts\n\nIf `/gh:sync` or `/gh:fr` encounters conflicts:\n\n1. Resolve conflicts in each file (remove `\u003c\u003c\u003c\u003c\u003c\u003c\u003c`, `=======`, `\u003e\u003e\u003e\u003e\u003e\u003e\u003e` markers)\n2. Stage resolved files: `git add \u003cfile\u003e`\n3. Continue: `git rebase --continue`\n4. Or abort: `git rebase --abort`\n\n### Push Rejected\n\nIf push fails after rebase:\n\n1. Run `/gh:sync` again to incorporate new remote changes\n2. Or use `git push --force-with-lease` (only if you understand the implications)\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Submit a pull request\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzircote%2Fgh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzircote%2Fgh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzircote%2Fgh/lists"}