--- 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.