Get the FREE Ultimate OpenClaw Setup Guide →

git-platform

npx machina-cli add skill athola/claude-night-market/git-platform --openclaw
Files (1)
SKILL.md
5.2 KB

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 issuegh issue view N --json title,body,labelsglab issue view N
List issuesgh issue list --json number,titleglab issue list
Create issuegh issue create --title "T" --body "B"glab issue create --title "T" --description "B"
Close issuegh issue close Nglab issue close N
Comment on issuegh issue comment N --body "msg"glab issue note N --message "msg"
View PR/MRgh pr view Nglab mr view N
Create PR/MRgh pr create --title "T" --body "B"glab mr create --title "T" --description "B"
List PR/MR commentsgh api repos/O/R/pulls/N/commentsglab mr note list N
Current PR/MRgh pr view --json numberglab mr view --json iid
Resolve threadsgh api graphqlglab api graphql
Repo infogh repo view --json owner,nameglab 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.ymlbitbucket-pipelines.yml
Default branchmainmainmain
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

Source

git clone https://github.com/athola/claude-night-market/blob/master/plugins/leyline/skills/git-platform/SKILL.mdView on GitHub

Overview

Git Platform Detection provides a cross-platform abstraction for forge operations across GitHub, GitLab, and Bitbucket. It detects the hosting platform and translates common forge commands so a single skill or workflow can run across providers. The SessionStart hook detect-git-platform.sh automatically injects the detected platform into session context.

How This Skill Works

A SessionStart hook detects the hosting platform and stores it in session context (git_platform, cli, mr_term). The mapping layer then translates operations to the appropriate CLI (gh for GitHub, glab for GitLab) and PR/MR terminology, while Bitbucket guidance uses REST API equivalents where a standard CLI is unavailable.

When to Use It

  • 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
  • To support cross-platform workflows with a single command set

Quick Start

  1. Step 1: Ensure your repo is hosted on GitHub, GitLab, or Bitbucket.
  2. Step 2: Enable the detect-git-platform.sh SessionStart hook to inject platform data.
  3. Step 3: Use the translated commands (e.g., `gh issue view N`, `glab issue view N`) through the cross-platform interface.

Best Practices

  • Detect platform early with the SessionStart hook (detect-git-platform.sh).
  • Rely on the central command-mapping layer rather than per-provider syntax.
  • Verify the target CLI is available (gh for GitHub, glab for GitLab).
  • Use the Terminology mapping (PR/MR, workflow files) to avoid confusion.
  • For Bitbucket, be prepared to fall back to REST API calls when no standard CLI exists.

Example Use Cases

  • Translate gh issue view N --json title,body,labels to glab issue view N for GitLab, or use REST equivalents for Bitbucket.
  • List issues across GitHub and GitLab using the mapped commands, aligning on JSON output.
  • Create an issue with gh on GitHub and glab on GitLab via the same skill, thanks to the mapping.
  • View PRs/MRs with gh pr view N and glab mr view N using the cross-platform reference.
  • In CI workflows, have a single script that detects the platform and runs the corresponding commands automatically.

Frequently Asked Questions

Add this skill to your agents

Related Skills

Sponsor this space

Reach thousands of developers