跳到主要内容
知仓学习社ZHICANG

git-platform

Detects git forge (GitHub/GitLab/Bitbucket) and maps CLI commands cross-platform. Use when writing skills that must run on any git hosting provider.

不碰外部(只输出文字)无严重或高危命中athola/claude-night-market

它会碰到什么

扫了多少2 个文本文件,13 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Table of Contents

  • [Overview](#overview)
  • [When to Use](#when-to-use)
  • [Platform Detection](#platform-detection)
  • [Quick Command Reference](#quick-command-reference)
  • [Terminology](#terminology)
  • [Integration Pattern](#integration-pattern)
  • [Detailed Resources](#detailed-resources)
  • [Exit Criteria](#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](modules/command-mapping.md) 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:

  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](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

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。