git-platform
npx machina-cli add skill athola/claude-night-market/git-platform --openclawTable 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,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
| Operation | GitHub (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
| Concept | GitHub | GitLab | Bitbucket |
|---|---|---|---|
| Code review unit | Pull 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 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
Skill(leyline:authentication-patterns)forensure_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
- Step 1: Ensure your repo is hosted on GitHub, GitLab, or Bitbucket.
- Step 2: Enable the detect-git-platform.sh SessionStart hook to inject platform data.
- 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
Related Skills
terraform
chaterm/terminal-skills
Terraform 基础设施即代码
makefile-generation
athola/claude-night-market
Generate language-specific Makefiles with testing, linting, and automation targets. Use for project initialization and workflow standardization. Skip if Makefile exists.
precommit-setup
athola/claude-night-market
Configure three-layer pre-commit system with linting, type checking, and testing hooks. Use for quality gate setup and code standards. Skip if pre-commit is optimally configured.
error-patterns
athola/claude-night-market
'Standardized error handling patterns with classification, recovery,
risk-classification
athola/claude-night-market
'Inline risk classification for agent tasks using a 4-tier model. Hybrid
quota-management
athola/claude-night-market
'Quota tracking, threshold monitoring, and graceful degradation for rate-limited