mcpField
G
gitlab

gitlab

github.com/acedatacloud開発17207 回インストール今日更新
リポジトリ

gitlab について

AI エージェントが `glab` CLI で GitLab の課題、マージリクエスト、CI、API クエリを扱うためのスキルです。セルフホスト環境の指定方法も含みます。

主な機能

  1. 01課題とマージリクエストの操作
  2. 02CI とパイプラインの確認
  3. 03リリースとリポジトリのコマンド
  4. 04REST と GraphQL のリクエスト
  5. 05JSON 出力とページネーション

活用シーン

  1. 01プロジェクトの課題の一覧表示や更新
  2. 02マージリクエストのレビューとマージ
  3. 03パイプラインの状態やジョブログの確認
  4. 04GitLab プロジェクトデータの照会

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/acedatacloud/skills --skill gitlab

インストール後、Claude Code で/gitlabを入力して読み込まれたか確認します。

詳細

すべての操作に glab CLI を使用してください。ユーザーの OAuth アクセストークンは $GITLAB_TOKEN としてエクスポートされています。glab はこれを自動的に読み取ります(ツールとの 互換性のため、トークンは GITLAB_ACCESS_TOKEN と OAUTH_TOKEN でも受け付けられます)。デフォルトのホストは gitlab.com です。セルフホストの場合は GITLAB_HOST を設定するか、各コマンドで --hostname <host> を指定してください。

glab --help と glab <subcommand> --help は常に最新の情報を表示します。

glab の呼び出し方は 2 通り — サブコマンドを優先してください

スタイル A:専用サブコマンド — まずはこちらを使用

glab issue、glab mr、glab repo、glab ci、glab job、glab pipeline、 glab release、glab snippet、glab variable、glab label、 glab milestone、glab schedule。デフォルトでは整形されたテキストを出力し、 --output json で JSON を出力します。

スタイル B:glab api による REST/GraphQL の直接呼び出し

REST には glab api <path>、GraphQL には glab api graphql -f query='…' を使用します。 主なフラグ:

  • -X POST|PATCH|PUT|DELETE — メソッドを上書きします(デフォルトは GET です。--field/--raw-field を 設定すると POST になります)。
  • -f key=value — 値の型を自動判定します(true/false/null のリテラルや整数は JSON 型になり、先頭に @filename を指定するとファイルから読み込みます)。
  • -F key=value — -f と同じですが、値を常に文字列として扱います。
  • --paginate — Link: rel="next" をたどって自動的にページを取得します。
  • --hostname <host> — デフォルトとは異なる GitLab ホストを指定します。
  • パスのプレースホルダー:git チェックアウト内で実行すると、:fullpath/ :branch/:user はリポジトリから自動的に設定されます。一般的な シェルから実行する場合は、パスを手動でエンコードしてください(レシピを参照)。

レシピ

プロジェクトの未解決イシューを一覧表示する
glab issue list --repo OWNER/PROJECT --opened --output json
glab issue list --repo OWNER/PROJECT --assignee=@me --output json
コメント付きでイシューを表示する
glab issue view 42 --repo OWNER/PROJECT --comments
glab issue view 42 --repo OWNER/PROJECT --output json
イシューを作成/コメント/クローズする
glab issue create --repo OWNER/PROJECT --title "Bug: foo" --description "Repro steps…" --label bug
glab issue note 42 --repo OWNER/PROJECT --message "Acknowledged."
glab issue close 42 --repo OWNER/PROJECT
自分に割り当てられた/自分が作成した MR を一覧表示する
glab mr list --repo OWNER/PROJECT --assignee=@me --opened --output json
glab mr list --repo OWNER/PROJECT --author=@me --opened
差分と CI パイプラインを含めて MR を表示する
glab mr view 99 --repo OWNER/PROJECT
glab mr diff 99 --repo OWNER/PROJECT
glab ci view --repo OWNER/PROJECT --branch <BRANCH>
MR を承認/マージ/コメントする
glab mr approve 99 --repo OWNER/PROJECT
glab mr note 99 --repo OWNER/PROJECT --message "Looks good — ready when CI is green."
glab mr merge 99 --repo OWNER/PROJECT --squash --remove-source-branch
デフォルトブランチからファイルを読み込む(生バイト列)
# URL-encode the project path AND the file path because both contain '/'.
PROJECT=$(printf '%s' 'OWNER/PROJECT' | jq -sRr @uri)
FILE=$(printf '%s' 'src/main.go' | jq -sRr @uri)
glab api "projects/${PROJECT}/repository/files/${FILE}/raw?ref=main"
ブランチの最新パイプラインを一覧表示する
glab ci list --repo OWNER/PROJECT --status running,success,failed
glab ci view --repo OWNER/PROJECT --branch main
glab ci trace --repo OWNER/PROJECT <JOB_ID>     # stream a job log
グループのイシューを横断検索する
glab api "groups/GROUP_PATH_OR_ID/issues?state=opened&search=keyword" \
  --paginate \
  | jq '.[] | {iid, title, project: .references.full, web_url}'
GraphQL の例:プロジェクトのメタデータと未解決 MR の件数
glab api graphql -f query='
  query($path: ID!) {
    project(fullPath: $path) {
      name webUrl
      mergeRequests(state: opened) { count }
    }
  }' -f path=OWNER/PROJECT

注意事項

  • --repo OWNER/PROJECT には、OWNER/PROJECT、GROUP/SUBGROUP/PROJECT、 完全な HTTPS URL、または git URL を指定できます。--repo ではプロジェクトパスをそのまま指定します(URL エンコードは不要です)が、glab api のパス内で使用する場合は jq @uri でエンコードする必要があります。
  • セルフホストの GitLab では、ユーザーが正しい host への接続を承認している必要があります。存在が確認できている プロジェクトで 404 が発生する場合、通常はプロジェクトが別のホストにあるにもかかわらず接続先が gitlab.com になっています。この点をユーザーに伝えてください。
  • 多くの glab コマンドには --output フラグがあり、text(デフォルト)または json を指定できます。 glab issue list と glab mr list には、別個の一覧専用フォーマッターである --output-format(details/ids/urls)もあります。短いフラグの混同(-O と -F)を避けるため、 長いフラグ --output json を指定してください。

コメント