关于 git-platform
git-platform 是面向技能和工作流的 Git 托管平台检测与命令映射指南,可识别 GitHub、GitLab 或 Bitbucket,并提供跨平台操作参考。SessionStart hook 会将检测结果加入会话上下文。
主要功能
- 01自动检测托管平台
- 02映射 GitHub 与 GitLab 命令
- 03提供 Bitbucket API 操作参考
- 04区分各平台术语与配置
适用场景
- 01创建工单或 PR/MR 前确认平台
- 02为不同托管平台编写 CI/CD 配置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill git-platform安装后在 Claude Code 中输入/git-platform确认已加载。
附带文件modules/command-mapping.md
详细介绍
Git 平台检测与命令映射
概述
用于 Git 托管平台操作的跨平台抽象。检测当前项目使用的是 GitHub、GitLab 还是 Bitbucket,并为每个平台提供对应的 CLI 命令。
SessionStart 钩子(detect-git-platform.sh)会自动将检测到的平台注入会话上下文。此技能提供命令参考,用于在不同平台之间转换操作。
适用场景
- 运行
gh、glab或托管平台 API 命令之前 - 技能或命令需要创建 issue、PR/MR 或发表评论时
- 编写 CI/CD 配置时
- 工作流中出现特定于托管平台的 CLI 命令时
不适用场景
- 仅限本地的 Git 操作(
git commit、git branch等) - 没有托管的 Git 远程仓库的项目
平台检测
SessionStart 钩子会自动检测平台。会话上下文中会包含:
git_platform: github|gitlab|bitbucket, cli: gh|glab, mr_term: pull request|merge request
如需手动重新检测:
# 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"
快速命令参考
| 操作 | GitHub(gh) | GitLab(glab) |
|---|---|---|
| 查看 issue | gh issue view N --json title,body,labels | glab issue view N |
| 列出 issue | gh issue list --json number,title | glab issue list |
| 创建 issue | gh issue create --title "T" --body "B" | glab issue create --title "T" --description "B" |
| 关闭 issue | gh issue close N | glab issue close N |
| 评论 issue | gh issue comment N --body "msg" | glab issue note N --message "msg" |
| 查看 PR/MR | gh pr view N | glab mr view N |
| 创建 PR/MR | gh pr create --title "T" --body "B" | glab mr create --title "T" --description "B" |
| 列出 PR/MR 评论 | gh api repos/O/R/pulls/N/comments | glab mr note list N |
| 当前 PR/MR | gh pr view --json number | glab mr view --json iid |
| 解决讨论串 | gh api graphql | glab api graphql |
| 仓库信息 | gh repo view --json owner,name | glab repo view |
Bitbucket:没有标准 CLI。请使用 REST API(curl)或 Web 界面。API 对应项请参阅 command-mapping module。
术语
| 概念 | GitHub | GitLab | Bitbucket |
|---|---|---|---|
| 代码审查单元 | Pull Request(PR) | Merge Request(MR) | Pull Request(PR) |
| CI 配置 | .github/workflows/*.yml | .gitlab-ci.yml | bitbucket-pipelines.yml |
| 默认分支 | main | main | main |
| 审查评论 | PR 审查评论 | MR 讨论备注 | PR 评论 |
重要:平台为 GitLab 时,面向用户的输出、提交消息和评论中必须始终使用“merge request”(而不是“pull request”)。
集成模式
执行托管平台操作的技能应:
- 声明
dependencies: [leyline:git-platform] - 检查会话上下文中的
git_platform: - 使用上方的命令映射表
- CLI 不可用时优雅地回退
# 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
详细资源
- 完整命令映射:请参阅 modules/command-mapping.md,了解完整的 API 对应项、GraphQL 查询和 Bitbucket REST API 模式
- 身份验证:请参阅
Skill(leyline:authentication-patterns),了解ensure_auth github|gitlab
退出条件
- 已检测到平台(或明确标记为未知)
- 所有托管平台操作均使用了正确的 CLI 工具
- 面向用户的输出采用了适合平台的术语
评论
支持 Markdown