mcpField
G
glab-issue

glab-issue

github.com/vince-winkintel開発49127 回インストール1 日前に更新
リポジトリ

glab-issue について

glab-issueはglabコマンドラインでGitLab issueを管理するスキルです。issueの保守やトリアージ向けに、作成、絞り込み、更新、コメント、時間記録、ボード操作を扱います。

主な機能

  1. 01issueの作成・一覧・表示・クローズ
  2. 02issueの絞り込みと担当者・ラベルの更新
  3. 03テンプレート・ファイル・添付の利用
  4. 04ノートの追加と時間記録
  5. 05issueボードの表示とページ取得

活用シーン

  1. 01未割り当てや更新済みissueのトリアージ
  2. 02リポジトリのテンプレートからバグ報告を作成
  3. 03スプリントの担当者とマイルストーンを更新
  4. 04調査ノートと作業時間の記録

インストール

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

$npx skills add https://github.com/vince-winkintel/gitlab-cli-skills --skill glab-issue

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
commands.md
scripts/
batch-label-issues.sh
create-mr-from-issue.sh

詳細

glab issue

GitLab のイシューを作成、表示、更新、管理します。

テンプレートの選択

create --template では、名前のみ(.md を付けてもかまいません)を指定すると、リポジトリの .gitlab/issue_templates/ ディレクトリ内で解決されます。絶対パス、または区切り文字を含むパスは直接読み込まれます。相対パスは現在のディレクトリを基準とし、~/ も使用できます。現在のディレクトリ内のファイルには、テンプレート名のみではなく ./template.md を使用してください。投稿前にファイルの内容を読み、承認してください。--description-file と --template は併用できません。

担当者、日付、内部メモ

issue list --assignee @none は担当者のいないイシューを選択します。--assignee @any は担当者が設定されたイシューを選択し、@me は自分のイシューを選択します。日付フィルターは --created-after、--created-before、--updated-after、--updated-before で、タイムゾーンを含む RFC 3339 タイムスタンプを指定します。グループの一覧表示では、--confidential と --iteration のフィルターが維持されます。

glab issue list --assignee @none --updated-after 2026-10-01T00:00:00Z
glab issue note 123 --internal --message "Investigation details for project members"

--internal は、プロジェクトメンバーのみが閲覧できる内部メモを要求します。投稿前に対象と閲覧者を確認し、認証情報は決して含めないでください。issue view は、利用可能な場合、人が読みやすい形式で作業時間と見積もり時間を表示します。自動化には JSON を優先してください。

クイックスタート

# Create an issue
glab issue create --title "Fix login bug" --label bug

# Create or update with a multi-line description from a file
glab issue create --title "Fix login bug" --description-file description.md
glab issue update 123 --description-file description.md

# Upload a screenshot and append its Markdown reference
glab issue create --title "Fix login bug" --description "See below." --attach ./repro.png
glab issue update 123 --attach ./after.png

# List open issues
glab issue list --state opened

# Stable machine-readable output
glab issue list --output json

# View issue details
glab issue view 123

# View or comment on an issue/work item from a GitLab URL
glab issue view https://gitlab.com/group/project/-/work_items/123

glab issue note https://gitlab.com/group/project/-/issues/123 -m "Working on this now"

# Add comment
glab issue note 123 -m "Working on this now"

# Close issue
glab issue close 123

一般的なワークフロー

イシューおよび作業項目の URL 入力

glab issue サブコマンドでイシュー引数を解決する際、イシュー URL に加えて GitLab の作業項目 URL もイシュー引数として受け付けます。これは view、note、update、close などのイシュー形式の操作における URL 互換性です。専用の作業項目フィールドや作業項目固有のライフサイクル動作が必要な場合は、glab work-items を使用してください。

glab issue view https://gitlab.com/group/project/-/work_items/123
glab issue note https://gitlab.com/group/project/-/work_items/123 -m "Follow-up note"
glab issue update https://gitlab.com/group/project/-/work_items/123 --label needs-triage
バグ報告のワークフロー
  1. バグのイシューを作成する:

    glab issue create \
      --title "Login fails with 500 error" \
      --label bug \
      --label priority::high \
      --assignee @dev-lead
    

    プロジェクト内のリポジトリに再利用可能なイシューテンプレートがある場合、繰り返し使用する定型文を貼り付ける代わりに、--template でテンプレートファイルを使って作成を開始します。

    glab issue create \
      --title "Login fails with 500 error" \
      --template .gitlab/issue_templates/bug.md \
      --label bug
    

    1 回限りの複数行の説明には、--description-file <path> または標準入力用の --description-file - を使用します。--description とは併用できません。作成時には、--template とも併用できません。内容が - のみのファイルは拒否されます。これは --description - が「エディターを開く」という意味だからです。

    実験的な --attach <path> を繰り返し使用すると、1 つ以上のローカルファイルをアップロードし、GitLab が生成した Markdown 参照を説明に追加できます。--attach - は標準入力から添付ファイルを 1 つ読み込みます。どちらも標準入力を消費するため、--description-file - と併用しないでください。作成時は、非対話モードで --title と添付ファイルを指定するだけで十分です。更新時は、--description または --description-file で本文を置き換えない限り、添付ファイルは既存の説明に追加されます。

  2. 再現手順を追加する:

    glab issue note 456 -m "Steps to reproduce:
    1. Navigate to /login
    2. Enter valid credentials
    3. Click submit
    Expected: Dashboard loads
    Actual: 500 error"
    
    # A file can accompany a message or be the entire comment
    glab issue note 456 -m "Screenshot from production" --attach ./repro.png
    

    複数のアップロードを引数の順序どおりに保持するには、--attach を繰り返し指定します。添付ファイルのみのメモではエディターは開きません。標準入力経由で 1 つのファイルをパイプする場合は、--attach - を使用してください。

イシューのトリアージ

テキスト一覧のヘッダーでは、プロジェクトとグループの一覧について、現在のページの行数とは別に、API のイシュー総数を使用します。API が総数を返さない場合や、クライアント側でフィルターされたエピックのイシューを一覧表示する場合、glab はページの行数から総数を推定しません。JSON 出力には取得したイシューの行が引き続き含まれます。修正されたヘッダー表示のために追加ページを取得することはありません。

glab issue list は、リクエストを実行する前に両方の出力セレクターを検証します。--output で受け付けるのは text または json のみで、--output-format で受け付けるのは details、ids、urls のみです。2 つのセレクターは併用できません。すぐに表示される「must be one of」というエラーは、GitLab API の失敗ではなく、無効なローカル入力として扱ってください。

  1. トリアージ前のイシューを一覧表示する:

    glab issue list --label needs-triage --state opened
    
  2. ラベルと担当者を更新する:

    glab issue update 789 \
      --label backend,priority::medium \
      --assignee @backend-team \
      --milestone "Sprint 23"
    
    glab issue update 789 --description-file triage-summary.md
    
  3. トリアージラベルを削除する:

    glab issue update 789 --unlabel needs-triage
    

一括ラベル付け:

複数のイシューに一度にラベルを付けるには、このスキルに同梱されている scripts/ のスクリプトを使用します(以下のパスはスキルのディレクトリを基準とします)。

scripts/batch-label-issues.sh "priority::high" 100 101 102
scripts/batch-label-issues.sh bug 200 201 202 203
時間追跡
# Set an estimate and add spent time
glab issue update 42 --estimate 2d --spend 1h30m

# Reset both values after confirming the intended issue
glab issue update 42 --remove-estimate --remove-time-spent

期間は、1mo 2w 3d 4h 5m のような GitLab の時間追跡形式を使用します。--estimate は見積もりを設定し、--spend は既存の消費時間に加算します。各リセットフラグは、対応する設定/加算フラグと併用できません。これらは更新フラグです。イシューの作成には --time-estimate と --time-spent を使用します。

時間のみの更新では、一般的なイシュー更新リクエストはスキップされます。他の編集と組み合わせた場合は、先にそれらの編集を実行し、その後に個別の時間追跡リクエストを実行します。後続の処理が失敗すると、先に行われた変更が適用済みのままになることがあります。特に加算される --spend を再実行する前に、イシューの状態を確認してください。

スプリント計画

現在のスプリントのイシューを表示:

glab issue list --milestone "Sprint 23" --assignee @me

スプリントに追加:

glab issue update 456 --milestone "Sprint 23"

ボード表示:

glab issue board view

# Retrieve every project/group board issue instead of only the first API page
glab issue board view --paginate

ボードが API の 1 ページを超える可能性がある場合は、ボード全体のトリアージに --paginate を使用してください。指定しない場合、インタラクティブボードには GitLab が返す最初のページが表示されます。このオプションは、プロジェクトとグループの両方のボードからイシューを取得する際に機能し、--assignee、--labels、--milestone の各フィルターと併用できます。

イシューと作業の関連付け

イシュー用の MR を作成:

glab mr for 456  # Creates MR that closes issue #456

自動ワークフロー(ブランチの作成+ドラフト MR):

scripts/create-mr-from-issue.sh 456 --create-mr

これにより、イシューのタイトルからブランチを作成 → 空のコミットを作成 → プッシュ → ドラフト MR を作成、という処理が自動で行われます。

コミット/MR でクローズ:

git commit -m "Fix login bug

Closes #456"

関連スキル

イシューからの MR 作成:

  • マージリクエスト操作については glab-mr を参照してください
  • イシューをクローズする MR の作成には glab mr for <issue-id> を使用してください
  • スクリプト:scripts/create-mr-from-issue.sh はブランチの作成とドラフト MR の作成を自動化します

ラベル管理:

  • ラベルの作成と管理については glab-label を参照してください
  • 一括ラベル付けにはスクリプト scripts/batch-label-issues.sh を使用してください

プロジェクト計画:

  • リリース計画については glab-milestone を参照してください
  • スプリント/イテレーション管理については glab-iteration を参照してください

コマンドリファレンス

コマンドの詳細とすべてのフラグについては、references/commands.md を参照してください。

利用可能なコマンド:

  • create - 新しいイシューを作成
  • list - フィルターを指定してイシューを一覧表示
  • view - イシューの詳細を表示
  • note - イシューにコメントを追加
  • update - タイトル、ラベル、担当者、マイルストーン、時間追跡を更新
  • close - イシューをクローズ
  • reopen - クローズ済みのイシューを再オープン
  • delete - イシューを削除
  • subscribe / unsubscribe - 通知を管理
  • board - イシューボードを操作

コメント