<h1 align="center">
<a href="https://prompts.chat">
[](https://gitlab.com/YawLighthouse/claude-gitlab-connection-skill/-/commits/main)
Sign in to like and favorite skills
A performant, secure skill enabling Claude to interact with GitLab repositories.
Version: 1.1.0
This skill uses a flat file structure for simplicity:
gitlab-skill/ ├── SKILL.md # Skill documentation (Claude reads this) ├── README.md # This file ├── gitlab_client.py # Core API client ├── gitlab_cli.py # CLI interface └── test_gitlab.py # Unit tests
read_repository and read_api scopes (for private repos)Download the latest release from the Releases page. Each release includes:
gitlab_client.py - Core API clientgitlab_cli.py - CLI interfaceSKILL.md - Generated documentation for ClaudeREADME.md - This documentationLICENSE - MIT LicenseExtract to your Claude skills directory:
/mnt/skills/user/gitlab/
git clone https://gitlab.com/YawLighthouse/claude-gitlab-connection-skill.git cd claude-gitlab-connection-skill # Generate the SKILL.md file python generate_skill.py --output SKILL.md
The
SKILL.md file is automatically generated on every push to the main branch. To download it:
SKILL.mdOr use the GitLab API:
# Download the latest SKILL.md artifact curl --output SKILL.md \ "https://gitlab.com/YawLighthouse/claude-gitlab-connection-skill/-/jobs/artifacts/main/raw/SKILL.md?job=generate-skill-md"
The
SKILL.md file is not stored in the repository. Instead, it's generated automatically by generate_skill.py during CI/CD. This ensures:
# Validate access python gitlab_cli.py validate YawLighthouse/claude-gitlab-connection-skill # Get info python gitlab_cli.py info YawLighthouse/claude-gitlab-connection-skill # Get file tree python gitlab_cli.py tree YawLighthouse/claude-gitlab-connection-skill # Read a file python gitlab_cli.py file YawLighthouse/claude-gitlab-connection-skill README.md
Get a GitLab Personal Access Token:
read_repository, read_apiglpat-)# Validate access python gitlab_cli.py --token glpat-xxx validate user/private-repo # Get info python gitlab_cli.py --token glpat-xxx info user/private-repo # Read files python gitlab_cli.py --token glpat-xxx files user/private-repo "README.md,src/main.py"
# Unit tests python test_gitlab.py # Integration tests (requires token for private repos) python test_gitlab.py --integration --project YawLighthouse/claude-gitlab-connection-skill python test_gitlab.py --integration --token glpat-xxx --project user/private-repo
| Command | Description |
|---|---|
| Check repository access |
| Get repository metadata |
| Get file structure |
| Get single file content |
| Batch retrieve multiple files (faster!) |
| List all branches |
| Get branch details |
| Search files by name |
| Get recent commits |
| Compare two branches |
| Show command help |
--format md (default) - Human-readable Markdown--format json - Machine-parseable JSONClaude can use shorthand commands:
gl:validate YawLighthouse/claude-gitlab-connection-skill gl:info YawLighthouse/claude-gitlab-connection-skill gl:tree user/repo TOKEN gl:file user/repo src/main.py TOKEN gl:files user/repo "a.py,b.py" TOKEN develop
ref parameter was required for file operationsReleases are automated via GitLab CI/CD. To create a new release:
# Tag the release git tag v1.2.0 # Push the tag git push origin v1.2.0
The pipeline will automatically:
SKILL.md documentation.tar.gz and .zip)Currently supports gitlab.com only. Self-hosted GitLab instances are not supported.
This project uses GitLab CI/CD for automated testing:
| Stage | Jobs | Description |
|---|---|---|
| lint | syntax-check, flake8 | Code quality checks |
| test | unit-tests, integration-tests, python-3.9/3.10/3.12 | Automated testing |
| security | bandit-security, secrets-check | Security scanning |
| report | pages | Coverage reports on GitLab Pages |
All merge requests must pass the CI pipeline before merging.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
MIT License - Use freely.