Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Senior-level code review for GitLab merge requests. Use when: reviewing MRs, providing feedback on code quality, security, performance, maintainability, or p...
Senior-level code review for GitLab merge requests. Use when: reviewing MRs, providing feedback on code quality, security, performance, maintainability, or p...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Credentials: ~/.openclaw/credentials/gitlab.json { "token": "glpat-xxx", "host": "https://gitlab.com", "ignore_patterns": ["*.min.js", "*.lock", "forms/*.json"] } Required API scopes: api โ required for posting inline comments read_api โ sufficient for analysis only (no comment posting) Always run token check first to know upfront whether comments can be posted: python scripts/gitlab_client.py check-token <mr_url> Output includes "can_write": true/false. If false, skip step 6 and inform the user that the token needs the api scope to post comments. Do NOT proceed to analysis and then fail at step 6.
python scripts/gitlab_client.py fetch-mr <mr_url> python scripts/gitlab_client.py fetch-diff <mr_url> fetch-diff returns a JSON array. Each entry contains new_path, old_path, diff (unified diff text), and boolean flags new_file, deleted_file, renamed_file. Fallback: if the /diffs endpoint returns HTTP 500 (some self-hosted GitLab instances), the script automatically retries via /changes. No manual intervention needed.
Use ignore_matcher.py to exclude files before analysis: from ignore_matcher import filter_diffs reviewable = filter_diffs(all_diffs) # merges defaults + credentials ignore_patterns Default ignore patterns (always applied, even without credentials file): *.min.js, *.min.css, *.lock, package-lock.json, pnpm-lock.yaml, forms/*.json Binary extensions (.png, .jar, .class, .map, etc.) are always skipped.
Analyze only modified lines (added/removed in the diff). Do not comment on unchanged context lines. If the total diff is large, process file-by-file and aggregate results. Read references/review-guidelines.md for all review rules, severity definitions, and comment format. Focus areas: Java / Spring Boot โ Clean Code, SOLID, transaction boundaries, lazy loading MongoDB โ query correctness, index coverage, atomicity PostgreSQL โ SQL correctness, isolation levels, index/schema migrations React / TypeScript โ hooks correctness, type safety, XSS, stale closures
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.