Skip to main content
Generalbendrucker

gitlab:todos

Managing GitLab todos inbox. Use when listing, filtering, or triaging GitLab todos (mark done, mark pending).

Stars
13
Source
bendrucker/claude
Updated
2026-05-31
Slug
bendrucker--claude--todos
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/bendrucker/claude/HEAD/plugins/gitlab/skills/todos/SKILL.md -o .claude/skills/todos.md

Drops the SKILL.md into .claude/skills/todos.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

GitLab Todos

Manage the GitLab todos inbox via glab api.

Listing

glab api /todos --paginate | jq '[.[] | select(.state == "pending")]'

Fields

Field Description
id Todo ID for actions
action_name assigned, mentioned, build_failed, approval_required, review_requested, directly_addressed
target_type MergeRequest, Issue
target.title Target title
target.web_url Browser URL
state pending, done
project.path_with_namespace Full project path

Actions

glab api -X POST /todos/{id}/mark_as_done        # Mark single done
glab api -X POST /todos/mark_as_done              # Mark all done

Filtering

Filter in jq after the API call:

# By action
... | jq '[.[] | select(.state == "pending" and .action_name == "review_requested")]'

# MRs only
... | jq '[.[] | select(.state == "pending" and .target_type == "MergeRequest")]'

Bulk Mark Done

glab api /todos --paginate | \
  jq -r '[.[] | select(.state == "pending")] | .[].id' | \
  xargs -I {} glab api -X POST /todos/{}/mark_as_done