Skip to content
Back to skills

Get Pr Reviews

ASecurity

Get nicely formatted output of the last review comments on a PR. Used internally by other skills.

  • 883 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
developmentbashgitapi

Works with

  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add saffron-health/libretto --skill get-pr-reviews --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Get Pr Reviews?

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

Security grade badge for Get Pr Reviews
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/saffron-health-get-pr-reviews/badge)](https://www.skillsdirectory.com/skills/saffron-health-get-pr-reviews)

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: get-pr-reviews
description: Get nicely formatted output of the last review comments on a PR. Used internally by other skills.
---

Get nicely formatted review comments for a pull request, grouped by file and line with proper comment threading.

## Steps

1. **Determine PR number**: If not provided, look up the associated PR for the current branch using:

   ```bash
   gh pr view --json number --jq '.number'
   ```

2. **Get formatted review comments**: Use the GitHub API to fetch and format all line-specific review comments:
   ```bash
   gh api repos/:owner/:repo/pulls/{PR_NUMBER}/comments --jq '
   group_by(.path, .line) |
   map({
     path: .[0].path,
     line: .[0].line,
     comments: sort_by(.created_at)
   }) |
   sort_by(.path, .line) |
   map(
     "**\(.path)**\n  Line \(.line):" +
     (.comments |
      map(
        if .in_reply_to_id then
          "  |  \(.user.login): \(.body)"
        else
          " (\(.user.login)): \(.body)"
        end
      ) |
      join("\n")) + "\n"
   ) |
   join("\n")
   '
   ```

## Output Format

The formatted command produces output like:

```
**apps/api/src/handlers/optionsHandlers.ts**
  Line 98: (tanishqkancharla): I think this is a bug. If you search for e.g. "blue cros", none of these search conditions will match.
  |  tanishqkancharla: I see that you re-query all insurances below, so this doesn't get used.
  |  Mochael: I think we should ditch the ilikes and just use the fuzzy search applied to planName, payer name and abbreviation
  |  tanishqkancharla: default to fuzzy search

**apps/api/src/handlers/optionsHandlers.ts**
  Line 116: (tanishqkancharla): fyi: don't need to fix, but I think you can just do `query.where(and(...conditions, or(...searchConditions)))`
```

## Key Features

- **Grouped by file and line**: Comments are organized by their location in the code
- **Threaded conversations**: Replies are indented with `|` to show the conversation flow
- **Chronological order**: Comments within each thread are sorted by creation time
- **User attribution**: Each comment shows the GitHub username of the author

## Usage Example

```bash
# Get formatted review for PR #84
gh api repos/saffron-health/monorepo/pulls/84/comments --jq '...'
```

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.