List GitHub repository labels with per_page pagination and name filtering support.
Scanned 9/1/2026
Install to Claude Code
npx -y skills add githubnext/gh-aw --skill github-labels-query --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Github Labels Query?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/githubnext-github-labels-query)More formats (shields.io, HTML) on the badges page.
---
name: github-labels-query
description: List GitHub repository labels with per_page pagination and name filtering support.
---
# GitHub Labels Query Skill
List GitHub repository labels with efficient pagination using the `--per-page` flag.
## Usage
Use this script to list labels from any repository with controlled page sizes.
### Basic Usage
```bash
./query-labels.sh --owner github --repo gh-aw
# Returns 10 labels (default per_page=10)
```
### Pagination
```bash
# Get the first label only
./query-labels.sh --owner github --repo gh-aw --per-page 1
# Get 25 labels starting from page 2
./query-labels.sh --owner github --repo gh-aw --per-page 25 --page 2
```
### Filtering by name
```bash
# Only labels whose name contains "bug" (case-insensitive)
./query-labels.sh --owner github --repo gh-aw --name-filter bug
```
When `--name-filter` is set, all labels are fetched and filtered, then
`--per-page`/`--page` are applied to the filtered results.
## Parameters
| Parameter | Required | Default | Description |
|-----------|----------|---------|-------------|
| `--owner` | Yes | - | Repository owner (username or organization) |
| `--repo` | Yes | - | Repository name |
| `--per-page` | No | 10 | Results per page (1–100) |
| `--page` | No | 1 | Page number |
| `--name-filter` | No | - | Case-insensitive substring filter on the label name |
## Output
Returns JSON with the following fields:
```json
{
"labels": [
{
"id": 12345,
"node_id": "LA_...",
"url": "https://api.github.com/repos/owner/repo/labels/bug",
"name": "bug",
"color": "d73a4a",
"default": true,
"description": "Something isn't working"
}
],
"item_count": 10,
"per_page": 10,
"page": 1
}
```
## Source
Calls the GitHub REST API:
`GET /repos/{owner}/{repo}/labels?per_page={n}&page={n}`
When `--name-filter` is used, the script pages through all labels
(`--paginate`) before filtering and slicing locally.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!