Claude-night-market git-platform
Git platform detection and cross-platform command mapping for GitHub, GitLab, and Bitbucket
install
source · Clone the upstream repo
git clone https://github.com/athola/claude-night-market
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/athola/claude-night-market "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/leyline/skills/git-platform" ~/.claude/skills/athola-claude-night-market-git-platform && rm -rf "$T"
manifest:
plugins/leyline/skills/git-platform/SKILL.mdsource content
Table of Contents
- Overview
- When to Use
- Platform Detection
- Quick Command Reference
- Terminology
- Integration Pattern
- Detailed Resources
- Exit Criteria
Git Platform Detection & Command Mapping
Overview
Cross-platform abstraction for git forge operations. Detects whether the current project uses GitHub, GitLab, or Bitbucket, and provides equivalent CLI commands for each platform.
The SessionStart hook (
detect-git-platform.sh) automatically injects the detected platform into session context. This skill provides the command reference for translating operations across platforms.
When To Use
- Before running
,gh
, or forge API commandsglab - When a skill or command needs to create issues, PRs/MRs, or post comments
- When writing CI/CD configuration
- Any time forge-specific CLI commands appear in a workflow
When NOT To Use
- Local-only git operations (
,git commit
, etc.)git branch - Projects without a hosted git remote
Platform Detection
Detection is automatic via the SessionStart hook. The session context will contain:
git_platform: github|gitlab|bitbucket, cli: gh|glab, mr_term: pull request|merge request
If you need to re-detect manually:
# Check remote URL git remote get-url origin 2>/dev/null # Check file markers ls -d .github/ .gitlab-ci.yml bitbucket-pipelines.yml 2>/dev/null # Check CLI availability command -v gh && echo "GitHub CLI available" command -v glab && echo "GitLab CLI available"
Quick Command Reference
| Operation | GitHub () | GitLab () |
|---|---|---|
| View issue | | |
| List issues | | |
| Create issue | | |
| Close issue | | |
| Comment on issue | | |
| View PR/MR | | |
| Create PR/MR | | |
| List PR/MR comments | | |
| Current PR/MR | | |
| Resolve threads | | |
| Repo info | | |
For Bitbucket: No standard CLI exists. Use REST API (
curl) or the web interface. See command-mapping module for API equivalents.
Terminology
| Concept | GitHub | GitLab | Bitbucket |
|---|---|---|---|
| Code review unit | Pull Request (PR) | Merge Request (MR) | Pull Request (PR) |
| CI configuration | | | |
| Default branch | | | |
| Review comments | PR review comments | MR discussion notes | PR comments |
Important: When the platform is GitLab, always say "merge request" (not "pull request") in user-facing output, commit messages, and comments.
Integration Pattern
Skills that perform forge operations should:
- Declare
dependencies: [leyline:git-platform] - Check the session context for
git_platform: - Use the command mapping table above
- Fall back gracefully if CLI is unavailable
# Example skill instruction pattern: ## Step N: Create PR/MR Use the detected platform CLI (check session context for `git_platform`): - **GitHub**: `gh pr create --title "..." --body "..."` - **GitLab**: `glab mr create --title "..." --description "..."` - **Bitbucket**: Create via web interface
Detailed Resources
- Full command mapping: See modules/command-mapping.md for complete API equivalents, GraphQL queries, and Bitbucket REST API patterns
- Authentication: See
forSkill(leyline:authentication-patterns)ensure_auth github|gitlab
Exit Criteria
- Platform detected (or explicitly unknown)
- Correct CLI tool used for all forge operations
- Platform-appropriate terminology in user-facing output