gitlab-assistant について
gitlab-assistantは、glabコマンドラインを使ったGitLab自動化のためのスキルハブです。リソースの種類に応じて専門スキルへ処理を振り分け、操作リスクも示します。
主な機能
- 01GitLabリソース別にスキルへ振り分け
- 02マージリクエスト、課題、CI/CDに対応
- 03リポジトリ、リリース、プロジェクト設定を管理
- 04API経由で各種GitLabリソースを操作
- 05認証とリポジトリのコンテキストを確認
活用シーン
- 01マージリクエストや課題の操作先を特定
- 02CI/CDパイプラインの確認や実行
- 03複数スキルにまたがるリリースの調整
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ grandcamel/ gitlab-assistant-skills --skill gitlab-assistantインストール後、Claude Code で/gitlab-assistantを入力して読み込まれたか確認します。
同梱ファイルdocs/DECISION_TREE.md
詳細
GitLab Assistant
glab CLI を使用して GitLab の自動化を一元管理します。リクエストを最も適切な専門スキルに振り分けます。
クイックリファレンス
| したいこと | 使用するスキル | リスク |
|---|---|---|
| マージリクエストを操作する | gitlab-mr | ⚠️ |
| イシューを操作する | gitlab-issue | ⚠️ |
| CI パイプラインを確認/実行する | gitlab-ci | ⚠️ |
| リポジトリをクローン/フォーク/作成する | gitlab-repo | ⚠️ |
| リリースを管理する | gitlab-release | ⚠️ |
| ラベルを管理する | gitlab-label | ⚠️ |
| マイルストーンを管理する | gitlab-milestone | ⚠️ |
| CI/CD 変数を管理する | gitlab-variable | ⚠️ |
| グループ/チームを管理する | gitlab-group | ⚠️ |
| GitLab を検索する | gitlab-search | - |
| ブランチを保護する | gitlab-protected-branch | ⚠️ |
| Webhook を管理する | gitlab-webhook | ⚠️ |
| リポジトリのファイルを操作する | gitlab-file | ⚠️ |
| Wiki ページを管理する | gitlab-wiki | ⚠️ |
| MR/イシューのディスカッション | gitlab-discussion | ⚠️ |
| プロジェクトバッジ | gitlab-badge | ⚠️ |
| コンテナレジストリ | gitlab-container | ⚠️⚠️ |
| セキュリティ脆弱性 | gitlab-vulnerability | ⚠️ |
リスクの凡例:- 安全 | ⚠️ 注意 | ⚠️⚠️ 警告 | ⚠️⚠️⚠️ 危険
振り分けルール
ルール 1:明示されたリソース種別
操作対象の GitLab リソースに基づいて振り分けます。
| キーワード | 振り分け先 |
|---|---|
| MR、merge request、pull request、レビュー、承認、マージ | gitlab-mr |
| イシュー、バグ、チケット、タスク、機能リクエスト | gitlab-issue |
| CI、CD、パイプライン、ビルド、ジョブ、デプロイ、アーティファクト | gitlab-ci |
| リポジトリ、プロジェクト、クローン、フォーク | gitlab-repo |
| リリース、タグ、バージョン、変更履歴 | gitlab-release |
| ラベル、タグ(イシュー/MR 用) | gitlab-label |
| マイルストーン、スプリント、イテレーション | gitlab-milestone |
| 変数、シークレット、環境、CI 変数 | gitlab-variable |
| グループ、チーム、組織、メンバー、名前空間 | gitlab-group |
| 検索、検索する、クエリ(グローバル/グループ/プロジェクト) | gitlab-search |
| ブランチを保護、ブランチ保護、アクセスルール | gitlab-protected-branch |
| Webhook、フック、通知コールバック、連携 | gitlab-webhook |
| ファイル、blob、コンテンツ、raw(リポジトリファイル) | gitlab-file |
| Wiki、ドキュメントページ | gitlab-wiki |
| ディスカッション、スレッド、コメント、ノート、返信 | gitlab-discussion |
| バッジ、ステータスバッジ、カバレッジバッジ | gitlab-badge |
| コンテナ、レジストリ、Docker、イメージ、タグ(コンテナ) | gitlab-container |
| 脆弱性、セキュリティ、スキャン、CVE、SAST、DAST | gitlab-vulnerability |
ルール 2:一般的なワークフロー
| ワークフロー | 関連するスキル |
|---|---|
| コードレビュー | gitlab-mr(チェックアウト、レビュー、承認、マージ) |
| バグ追跡 | gitlab-issue(作成、割り当て、クローズ) |
| デプロイ | gitlab-ci(実行、ステータス、アーティファクト) |
| リリースプロセス | gitlab-release + gitlab-ci |
| プロジェクトのセットアップ | gitlab-repo(作成、クローン) |
ルール 3:複数ステップの操作
複数のスキルにまたがる複雑なワークフローでは、それらを連携させます。
Example: "Release version 1.2.0"
1. gitlab-mr: Ensure all MRs are merged
2. gitlab-ci: Verify pipeline passes
3. gitlab-release: Create release with changelog
スキルの概要
gitlab-mr(マージリクエスト)
- 目的:MR の作成、レビュー、承認、マージ
- 主なコマンド:
glab mr list、glab mr create、glab mr checkout、glab mr merge - リスク:⚠️(マージは破壊的な操作です)
- トリガー:MR、merge request、レビュー、承認、マージ、チェックアウト
gitlab-issue(イシュー)
- 目的:バグ、機能、タスクを追跡
- 主なコマンド:
glab issue list、glab issue create、glab issue close - リスク:⚠️(クローズ/削除は破壊的な操作です)
- トリガー:イシュー、バグ、タスク、チケット、機能
gitlab-ci(CI/CD パイプライン)
- 目的:CI/CD パイプラインの表示、実行、管理
- 主なコマンド:
glab ci status、glab ci view、glab ci run、glab ci artifact - リスク:⚠️(実行するとコンピューティングリソースが使用されます)
- トリガー:CI、パイプライン、ビルド、ジョブ、デプロイ、アーティファクト、lint
gitlab-repo(リポジトリ)
- 目的:リポジトリのクローン、フォーク、作成、管理
- 主なコマンド:
glab repo clone、glab repo fork、glab repo create - リスク:⚠️⚠️(削除は非常に破壊的です)
- トリガー:repo、repository、project、clone、fork
gitlab-release(リリース)
- 目的:リリースの作成と管理
- 主なコマンド:
glab release create、glab release list、glab release view - リスク:⚠️(タグとリリースを作成します)
- トリガー:release、version、changelog、tag
gitlab-label(ラベル)
- 目的:プロジェクトのラベルを管理
- 主なコマンド:
glab label create、glab label list - リスク:⚠️(issue/MR の分類に影響します)
- トリガー:label、tag(分類用)
gitlab-milestone(マイルストーン)
- 目的:プロジェクトのマイルストーンを管理
- 主なコマンド:
glab milestone create、glab milestone list - リスク:⚠️(計画に影響します)
- トリガー:milestone、sprint、iteration
gitlab-variable(CI/CD 変数)
- 目的:CI/CD 変数とシークレットを管理
- 主なコマンド:
glab variable set、glab variable list - リスク:⚠️⚠️(シークレットを含みます)
- トリガー:variable、secret、env var、CI variable
gitlab-group(グループ - API)
- 目的:API 経由でグループ、メンバー、サブグループを管理
- 主なコマンド:
glab api groups、glab api groups/:id/members - リスク:⚠️(グループ管理)
- トリガー:group、team、organization、members、namespace
gitlab-search(検索 - API)
- 目的:GitLab 全体(プロジェクト、issue、コードなど)を検索
- 主なコマンド:
glab api "search?scope=...&search=..." - リスク:-(読み取り専用)
- トリガー:search、find、query
gitlab-protected-branch(保護ブランチ - API)
- 目的:ブランチ保護ルールを管理
- 主なコマンド:
glab api projects/:id/protected_branches - リスク:⚠️(ブランチへのアクセスに影響します)
- トリガー:protect branch、branch protection、access rules
gitlab-webhook(Webhook - API)
- 目的:プロジェクトの Webhook を管理
- 主なコマンド:
glab api projects/:id/hooks - リスク:⚠️(外部インテグレーション)
- トリガー:webhook、hook、notification、integration
gitlab-file(リポジトリファイル - API)
- 目的:API 経由でリポジトリファイルを読み書き
- 主なコマンド:
glab api projects/:id/repository/files/:path - リスク:⚠️(ファイルを変更します)
- トリガー:file、blob、content、raw
gitlab-wiki(Wiki - API)
- 目的:プロジェクトの Wiki ページを管理
- 主なコマンド:
glab api projects/:id/wikis - リスク:⚠️(ドキュメントを変更します)
- トリガー:wiki、documentation page
gitlab-discussion(ディスカッション - API)
- 目的:MR/issue のスレッド形式のディスカッションを管理
- 主なコマンド:
glab api projects/:id/merge_requests/:iid/discussions - リスク:⚠️(コメント)
- トリガー:discussion、thread、comment、note、reply
gitlab-badge(バッジ - API)
- 目的:プロジェクトのバッジを管理
- 主なコマンド:
glab api projects/:id/badges - リスク:⚠️(プロジェクトの表示)
- トリガー:badge、status badge、coverage badge
gitlab-container(コンテナレジストリ - API)
- 目的:コンテナレジストリのイメージとタグを管理
- 主なコマンド:
glab api projects/:id/registry/repositories - リスク:⚠️⚠️(イメージの削除は破壊的です)
- トリガー:container、registry、docker、image
gitlab-vulnerability(脆弱性 - API)
- 目的:セキュリティ脆弱性を管理(Ultimate)
- 主なコマンド:
glab api projects/:id/vulnerabilities - リスク:⚠️(セキュリティ状態を変更します)
- トリガー:vulnerability、security、scan、CVE
接続の確認
操作を行う前に、GitLab が設定されていることを確認します。
glab auth status
認証されていない場合:
glab auth login
現在のリポジトリのコンテキストを確認します:
glab repo view
glab コマンド早見表
# Authentication
glab auth login # Interactive login
glab auth status # Check auth status
# Merge Requests
glab mr list # List MRs
glab mr create # Create MR
glab mr view <id> # View MR details
glab mr checkout <id> # Checkout MR branch
glab mr merge <id> # Merge MR
# Issues
glab issue list # List issues
glab issue create # Create issue
glab issue view <id> # View issue
glab issue close <id> # Close issue
# CI/CD
glab ci status # Current pipeline status
glab ci view # Interactive pipeline view
glab ci run # Trigger pipeline
glab ci artifact # Download artifacts
# Repository
glab repo clone <path> # Clone repository
glab repo fork <path> # Fork repository
glab repo view # View repo info
曖昧さの解消
リクエストが曖昧な場合は、明確化のために質問してください。
| 曖昧なリクエスト | 確認の質問 |
|---|---|
| 「ステータスを表示して」 | 「CI パイプラインのステータス(glab ci status)と MR のステータス(glab mr list)のどちらを確認しますか?」 |
| 「新しいものを作成して」 | 「何を作成しますか? イシュー、MR、リポジトリのいずれですか?」 |
| 「すべて一覧表示して」 | 「何を一覧表示しますか? MR、イシュー、パイプライン、リポジトリのいずれですか?」 |
関連ドキュメント
コメント
Markdown 対応