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.md
source content

Table of Contents

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
    ,
    glab
    , or forge API commands
  • 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
    ,
    git branch
    , etc.)
  • 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

OperationGitHub (
gh
)
GitLab (
glab
)
View issue
gh issue view N --json title,body,labels
glab issue view N
List issues
gh issue list --json number,title
glab issue list
Create issue
gh issue create --title "T" --body "B"
glab issue create --title "T" --description "B"
Close issue
gh issue close N
glab issue close N
Comment on issue
gh issue comment N --body "msg"
glab issue note N --message "msg"
View PR/MR
gh pr view N
glab mr view N
Create PR/MR
gh pr create --title "T" --body "B"
glab mr create --title "T" --description "B"
List PR/MR comments
gh api repos/O/R/pulls/N/comments
glab mr note list N
Current PR/MR
gh pr view --json number
glab mr view --json iid
Resolve threads
gh api graphql
glab api graphql
Repo info
gh repo view --json owner,name
glab repo view

For Bitbucket: No standard CLI exists. Use REST API (

curl
) or the web interface. See command-mapping module for API equivalents.

Terminology

ConceptGitHubGitLabBitbucket
Code review unitPull Request (PR)Merge Request (MR)Pull Request (PR)
CI configuration
.github/workflows/*.yml
.gitlab-ci.yml
bitbucket-pipelines.yml
Default branch
main
main
main
Review commentsPR review commentsMR discussion notesPR 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:

  1. Declare
    dependencies: [leyline:git-platform]
  2. Check the session context for
    git_platform:
  3. Use the command mapping table above
  4. 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
    Skill(leyline:authentication-patterns)
    for
    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