# Gitlab Explorer

> Explore GitLab repositories using glab CLI and git commands. Use when user asks to: clone repositories, search projects or code in GitLab, view merge requests, explore project structure, check CI/CD pipelines, work with issues, or analyze git history. IMPORTANT: Always run authentication check script first before any GitLab operation.

- Skill: `wide-moat/gitlab-explorer` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add wide-moat/gitlab-explorer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wide-moat/gitlab-explorer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: Wide-Moat (https://skillmd.com/u/wide-moat)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wide-moat/gitlab-explorer

---


# GitLab Explorer

This skill enables exploring GitLab repositories, searching code, viewing merge requests, and working with git history.

## Before Any GitLab Operation

**ALWAYS run the authentication check first:**

```bash
bash /mnt/skills/public/gitlab-explorer/scripts/check_gitlab_auth.sh
```

This script will:
- Verify if GitLab token is configured
- Validate the token by calling GitLab API
- Show logged-in user info if valid
- Provide setup instructions if not configured

**DO NOT** try to read or echo `$GITLAB_TOKEN` directly - the script handles validation securely without exposing the token.

If authentication is not configured, inform the user:
> To use GitLab features, please go to  and add your GitLab Personal Access Token. Then start a NEW chat to apply the token.

## Quick Start

### Clone a Repository

```bash
git clone https://gitlab.com/group/project.git
cd project
```

### Search for Projects

```bash
# Search projects by name
glab api "projects?search=keyword" | jq '.[].path_with_namespace'

# List projects in a group
glab api "groups/GROUP_NAME/projects" | jq '.[].name'
```

### Check Current User

```bash
glab api user | jq '{username, email, name}'
```

## Exploring Code

### Repository Structure

```bash
# Show directory tree
tree -L 2

# Find files by pattern
find . -name "*.py" -type f

# Search for text in files
git grep "pattern"
```

### Git History

```bash
# View commit history
git log --oneline -20

# Visual branch history
git log --oneline --graph --all -20

# Who changed what
git blame filename

# Show specific commit
git show COMMIT_HASH

# Changes between branches
git diff main..feature-branch
```

### Top Contributors

```bash
git shortlog -sn --all | head -10
```

## Working with Merge Requests

```bash
# List open MRs
glab mr list

# View specific MR
glab mr view 123

# Show MR diff
glab mr diff 123

# Checkout MR branch locally
glab mr checkout 123
```

## CI/CD Pipelines

```bash
# Current pipeline status
glab ci status

# List recent pipelines
glab ci list

# View pipeline details
glab ci view PIPELINE_ID

# Watch job logs in real-time
glab ci trace
```

## Issues

```bash
# List issues
glab issue list

# View issue details
glab issue view 123

# Create new issue
glab issue create --title "Bug report" --description "Description here"
```

## Reference Materials

For detailed command reference, see:
- `references/glab-commands.md` - Complete glab CLI reference
- `references/git-commands.md` - Git commands for code exploration

## Common Workflows

### Explore Unknown Repository

1. Clone the repo
2. Check README and documentation
3. Explore directory structure with `tree`
4. Find main entry points
5. Use `git log` to understand recent changes
6. Use `git blame` to find who wrote specific code

### Review Merge Request

1. `glab mr view ID` - read description
2. `glab mr diff ID` - review changes
3. `glab mr checkout ID` - test locally if needed
4. Check CI status with `glab ci status`

### Find Code by Pattern

```bash
# Search in all files
git grep "function_name"

# Search with context
git grep -n -C 3 "pattern"

# Search in specific file types
git grep "pattern" -- "*.py"
```

