Skip to main content

gitlab-search

GitLab search operations via API. ALWAYS use this skill when user wants to: (1) search across GitLab globally, (2) find issues/MRs/code/commits, (3) search within a group or project, (4) find users or projects by keyword.

Zur Installation springen

Quellinformationen

Repository
grandcamel/GitLab-Assistant-Skills
Letzte Quellaktivität
19. Januar 2026 um 18:07
Erkannte Sprache von SKILL.md
Englisch
Sterne
4
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
gitlab-search
description
GitLab search operations via API. ALWAYS use this skill when user wants to: (1) search across GitLab globally, (2) find issues/MRs/code/commits, (3) search within a group or project, (4) find users or projects by keyword.
version
1.0.0
author
GitLab-Assistant-Skills
license
MIT
allowed-tools
["Bash","Read","Glob","Grep"]
# Search Skill Search operations for GitLab using `glab api` raw endpoint calls. ## Quick Reference | Operation | Command Pattern | Risk | |-----------|-----------------|:----:| | Search projects | `glab api "search?scope=projects&search=..."` | - | | Search issues | `glab api "search?scope=issues&search=..."` | - | | Search MRs | `glab api "search?scope=merge_requests&search=..."` | - | | Search code | `glab api "search?scope=blobs&search=..."` | - | | Search commits | `glab api "search?scope=commits&search=..."` | - | | Search users | `glab api "search?scope=users&search=..."` | - | | Search wiki | `glab api "search?scope=wiki_blobs&search=..."` | - | | Project search | `glab api "projects/:id/search?scope=...&search=..."` | - | | Group search | `glab api "groups/:id/search?scope=...&search=..."` | - | **Risk Legend**: - Safe | ⚠️ Caution | ⚠️⚠️ Warning | ⚠️⚠️⚠️ Danger ## When to Use This Skill **ALWAYS use when:** - User wants to search or find something across GitLab - User mentions "search", "find", "query", "look for" - User asks "where is", "which project has", "find all" - User wants to search code, issues, MRs, commits, or wikis **NEVER use when:** - User wants to list all items (use specific skill: gitlab-issue, gitlab-mr, etc.) - User knows the exact project/issue/MR ID - User wants to search local files (use grep/find locally) ## API Prerequisites **Required Token Scopes:** `read_api` or `api` **Note:** Search results are limited to resources the authenticated user can access. ## Search Scopes | Scope | Description | Available At | |-------|-------------|--------------| | `projects` | Search project names/descriptions | Global, Group | | `issues` | Search issue titles/descriptions | Global, Group, Project | | `merge_requests` | Search MR titles/descriptions | Global, Group, Project | | `milestones` | Search milestone titles | Global, Group, Project | | `snippet_titles` | Search snippet titles | Global | | `wiki_blobs` | Search wiki content | Global, Group, Project | | `commits` | Search commit messages | Global, Group, Project | | `blobs` | Search code/file content | Global, Group, Project | | `notes` | Search comments | Global, Group, Project | | `users` | Search usernames/names | Global | ## Available Commands ### Global Search ```bash # Search projects by name glab api "search?scope=projects&search=api+gateway" --method GET # Search issues globally glab api "search?scope=issues&search=authentication+bug" --method GET # Search merge requests glab api "search?scope=merge_requests&search=refactor" --method GET # Search code (blobs) glab api "search?scope=blobs&search=TODO+fixme" --method GET # Search commits glab api "search?scope=commits&search=fix+security" --method GET # Search wiki content glab api "search?scope=wiki_blobs&search=installation" --method GET # Search users glab api "search?scope=users&search=john" --method GET # Search milestones glab api "search?scope=milestones&search=v2.0" --method GET # Search comments/notes glab api "search?scope=notes&search=approved" --method GET ``` ### Project-Scoped Search ```bash # Search issues in specific project glab api "projects/123/search?scope=issues&search=bug" --method GET # Search code in project glab api "projects/123/search?scope=blobs&search=function+authenticate" --method GET # Search commits in project glab api "projects/123/search?scope=commits&search=fix" --method GET # Search wiki in project glab api "projects/123/search?scope=wiki_blobs&search=setup" --method GET # Search MRs in project glab api "projects/123/search?scope=merge_requests&search=feature" --method GET # Search notes in project glab api "projects/123/search?scope=notes&search=LGTM" --method GET # Search milestones in project glab api "projects/123/search?scope=milestones&search=sprint" --method GET # Using project path (URL-encoded) glab api "projects/$(echo 'mygroup/myproject' | jq -Rr @uri)/search?scope=blobs&search=TODO" ``` ### Group-Scoped Search ```bash # Search issues in group glab api "groups/456/search?scope=issues&search=urgent" --method GET # Search code across group glab api "groups/456/search?scope=blobs&search=api+key" --method GET # Search projects in group glab api "groups/456/search?scope=projects&search=backend" --method GET # Search MRs in group glab api "groups/456/search?scope=merge_requests&search=hotfix" --method GET # Using group path (URL-encoded) glab api "groups/$(echo 'mygroup' | jq -Rr @uri)/search?scope=issues&search=bug" ``` ### Pagination ```bash # Get more results per page glab api "search?scope=issues&search=bug&per_page=50" --method GET # Get specific page glab api "search?scope=issues&search=bug&per_page=50&page=2" --method GET # Auto-paginate all results glab api "search?scope=projects&search=api" --paginate ``` ### Advanced Search Syntax ```bash # Exact phrase search (use quotes, URL-encoded) glab api "search?scope=blobs&search=%22exact+phrase%22" --method GET # Filename filter in code search glab api "search?scope=blobs&search=authenticate+filename:auth.py" --method GET # Extension filter glab api "search?scope=blobs&search=class+extension:java" --method GET # Path filter glab api "search?scope=blobs&search=config+path:src/main" --method GET ``` ## Output Processing ### Extract Key Fields ```bash # Get issue IDs and titles glab api "search?scope=issues&search=bug" | \ jq -r '.[] | "\(.project_id)#\(.iid): \(.title)"' # Get project names and URLs glab api "search?scope=projects&search=api" | \ jq -r '.[] | "\(.path_with_namespace): \(.web_url)"' # Get code matches with file paths glab api "search?scope=blobs&search=TODO" | \ jq -r '.[] | "\(.project_id):\(.path):\(.startline) \(.data)"' # Get commit info glab api "search?scope=commits&search=fix" | \ jq -r '.[] | "\(.short_id): \(.title)"' ``` ### Count Results ```bash # Count matching issues glab api "search?scope=issues&search=bug" --paginate | jq 'length' # Count by project glab api "search?scope=issues&search=bug" --paginate | \ jq 'group_by(.project_id) | map({project: .[0].project_id, count: length})' ``` ## Common Workflows ### Workflow 1: Find All TODOs in Codebase ```bash # Search for TODO comments across all accessible projects glab api "search?scope=blobs&search=TODO" --paginate | \ jq -r '.[] | "\(.project_id):\(.path):\(.startline)"' ``` ### Workflow 2: Find Issues Across Team Projects ```bash # Get group ID group_id=$(glab api "groups/$(echo 'myteam' | jq -Rr @uri)" | jq -r '.id') # Search for critical issues in group glab api "groups/$group_id/search?scope=issues&search=critical" --paginate | \ jq -r '.[] | "\(.references.full): \(.title)"' ``` ### Workflow 3: Find Who Worked on Feature ```bash # Search commits mentioning feature glab api "projects/123/search?scope=commits&search=authentication" | \ jq -r '.[] | "\(.author_name): \(.title)"' ``` ### Workflow 4: Find Security-Related Code ```bash # Search for potential security patterns for term in "password" "secret" "api_key" "token"; do echo "=== Searching for: $term ===" glab api "projects/123/search?scope=blobs&search=$term" | \ jq -r '.[] | "\(.path):\(.startline)"' done ``` ### Workflow 5: Find Related MRs ```bash # Search MRs by feature name glab api "search?scope=merge_requests&search=oauth+integration" | \ jq -r '.[] | "!\(.iid) [\(.state)]: \(.title)"' ``` ## Search Tips ### Effective Search Terms | For | Search Examples | |-----|-----------------| | Bug fixes | `fix bug`, `resolve issue`, `patch` | | Features | `add feature`, `implement`, `new` | | Refactoring | `refactor`, `cleanup`, `improve` | | Security | `security`, `vulnerability`, `CVE` | | Performance | `performance`, `optimize`, `speed` | | Documentation | `docs`, `readme`, `documentation` | ### URL Encoding Special Characters ```bash # Space -> + glab api "search?scope=issues&search=fix+bug" # Quotes (for exact match) -> %22 glab api "search?scope=blobs&search=%22exact+phrase%22" # Hash -> %23 glab api "search?scope=issues&search=issue%231234" ``` ## Troubleshooting | Issue | Cause | Solution | |-------|-------|----------| | Empty results | No matches or no access | Verify search term, check permissions | | Partial results | Pagination needed | Use `--paginate` flag | | 400 Bad Request | Invalid scope | Check scope is valid for endpoint | | Slow search | Large result set | Add filters or narrow scope | | No code results | Basic search disabled | Contact admin to enable advanced search | ## Search Limitations - Basic search searches titles/descriptions only - Advanced search (Elasticsearch) required for code search - Results limited to accessible resources - Rate limits apply for large searches ## Related Documentation - [API Helpers](../shared/docs/API_HELPERS.md) - [Safeguards](../shared/docs/SAFEGUARDS.md) - [Quick Reference](../shared/docs/QUICK_REFERENCE.md) - [GitLab Search API](https://docs.gitlab.com/ee/api/search.html)
Auf GitHub ansehen