Skip to content
Back to skills

Reviewing Gitlab Mr Comments

ASecurity

Use when reviewing GitLab merge request comments via glab in the current repo, including extracting line ranges and code snippets from inline discussions, then deciding next actions with a checklist or plan before execution

  • 1,531 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythonbashgitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add hashgraph-online/awesome-codex-plugins --skill reviewing-gitlab-mr-comments --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reviewing Gitlab Mr Comments?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reviewing Gitlab Mr Comments
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hashgraph-online-reviewing-gitlab-mr-comments/badge)](https://www.skillsdirectory.com/skills/hashgraph-online-reviewing-gitlab-mr-comments)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reviewing-gitlab-mr-comments
description: Use when reviewing GitLab merge request comments via glab in the current repo, including extracting line ranges and code snippets from inline discussions, then deciding next actions with a checklist or plan before execution
---

# Reviewing GitLab MR Comments

## Overview
Use `glab` to fetch MR comments in the current repository, summarize review feedback, confirm understanding, then propose either a simple action checklist or a full plan before executing changes. Prefer `line_range` for multi-line comments. Default output is comments + line ranges only (no code snippet).

**Core principle:** Read all comments → confirm understanding → choose checklist vs plan → get approval → execute.

**Announce at start:** "I'm using the reviewing-gitlab-mr-comments skill to review GitLab MR feedback."

## Prerequisites

- `glab` installed and authenticated.
- Run from the local repository that owns the MR.

Optional checks:

```bash
glab auth status
```

## Inputs

Accept either:
- MR IID (e.g., `123`)
- MR URL (e.g., `https://gitlab.com/group/project/-/merge_requests/123`)

If not provided, ask for it.

## Workflow

### Step 1: Fetch MR and Comments

Prefer `glab` commands, using IID or URL:

```bash
glab mr view <mr> --comments
```

If you need to see the code under review:

```bash
glab mr diff <mr>
```

If you need to map comments to files/lines (and include multi-line ranges), query discussions:

```bash
project_id=$(glab repo view -F json | python3 - <<'PY'
import json,sys
print(json.load(sys.stdin)["id"])
PY
)
glab api "projects/${project_id}/merge_requests/<mr>/discussions"
```

Then format discussions into a readable list with ranges (comments + line numbers only):

```bash
glab api "projects/${project_id}/merge_requests/<mr>/discussions" | \
  ./scripts/mr_discussions_to_md.py
```

To **include code snippets** (with context lines) and still show comments:

```bash
glab api "projects/${project_id}/merge_requests/<mr>/discussions" | \
  ./scripts/mr_discussions_to_md.py --repo-root "$(pwd)" --context 3 --snippet
```

Notes:
- The formatter prefers `position.line_range.start/end`. It falls back to `new_line/old_line` only when no range exists.
- If files are missing (e.g., deleted or not in the current checkout), the snippet will be marked unavailable.
- Use `--snippet` to enable snippet output; default is no snippet.

### Step 2: Summarize Feedback

Produce a structured summary:
- By thread or file
- Actionable requests vs questions
- Conflicts or ambiguity

### Step 3: Confirm Understanding

Ask the user to confirm the summary or clarify any ambiguous items.

### Step 4: Decide Checklist vs Plan

Use a **simple action checklist** when:
- Changes are localized
- No architectural changes
- 1–2 files, low risk

Use a **plan** when:
- Multiple files/modules
- Conflicting comments or tradeoffs
- Non-trivial refactor or behavior changes

### Step 5: Propose Next Steps

**Checklist output** (simple cases):
- Bullet list of concrete actions
- Verification steps

**Plan output** (complex cases):
- Phased steps with file targets
- Risks and validations

Then ask for approval:
"Do you want me to proceed?"

### Step 6: Execute After Approval

Only implement after the user confirms.

## Quick Reference

| Step | Action |
| --- | --- |
| Identify MR | Accept IID or URL; ask if missing |
| Fetch comments | `glab mr view <mr> --comments` |
| Fetch ranges | `glab api ".../merge_requests/<mr>/discussions"` |
| Format | `./scripts/mr_discussions_to_md.py --repo-root "$(pwd)"` |
| Summarize | Group by thread/file; mark conflicts |
| Choose output | Checklist for simple; plan for complex |
| Execute | Only after approval |

## Common Mistakes

**Skipping understanding confirmation**
- **Problem:** Misinterprets review intent
- **Fix:** Ask for confirmation before planning

**Jumping to code changes**
- **Problem:** Skips the plan/approval gate
- **Fix:** Always ask for approval

**Using the wrong repository context**
- **Problem:** Fetches the wrong MR
- **Fix:** Run in the repo that owns the MR

**Only using single-line fields**
- **Problem:** Inline comments are multi-line in GitLab but appear as a single line
- **Fix:** Prefer `position.line_range.start/end` and only fall back to `new_line/old_line`

## Example

```
MR: 123

Summary:
- fileA.ts: fix null handling
- fileB.ts: add tests

This is small and localized.

Checklist:
1) Fix null handling in fileA.ts
2) Add tests in fileB.ts
3) Run build/compile

Proceed?
```

Files in this skill

  • SKILL.md4.4 KB
  • scripts/mr_discussions_to_md.py5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.