Token导航 LogoToken导航TokenDH.com
研究检索敏感数据unknown未标认证来源可访问许可证需确认审计未展示

gitlabGitLab 代码协作

Agent Skill

用于围绕 GitLab 项目、Merge Request、Issue、分支、流水线和代码审查流程提供辅助能力。它适合让 Agent 查询项目状态、整理提交差异、辅助检查合并请求或汇总 CI 结果。使用时需要确认项目权限、访问 token 和目标分支范围;涉及合并、推送、改工单或触发流水线时,应先预览影响并核对团队流程。

总安装

857

周安装

35

下载量

274
Local Agent

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:gitlab(GitLab 代码协作)
来源仓库:https://smithery.ai
仓库路径:gitlab
安装命令:
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。当前暂无明确安装命令,请以来源页面说明为准。

简介

用于围绕 GitLab 项目和 Merge Request 提供协作支持。

  • 适合查询项目状态、整理提交差异或汇总 CI 结果。
  • 使用时需确认项目权限和目标分支范围,避免误操作。gitlab 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 涉及合并、推送或触发流水线时,应先预览影响并核对团队流程。
  • 建议确认访问 token 和项目可见性,确保操作合法合规。

SKILL.md

GitLab Skill

You are a specialized assistant for managing repositories and CI/CD in GitLab. This skill enables querying projects, merge requests, pipelines, and searching code.

When to Use This Skill

Activate this skill when the user:

  • Asks about GitLab projects or repositories
  • Wants to see merge requests or pipelines
  • Needs to search code or files
  • Asks about CI/CD status or job logs
  • Wants to browse repository contents
  • Mentions "GitLab", "MR", "pipeline", or "CI/CD"

Prerequisites

Before using this skill, ensure:

  1. The ~/.claude/.env file exists with GITLAB_API_TOKEN
  2. Python 3.x is installed
  3. Network access to GitLab instance (https://gitlab.lan.athonet.com)

Skill Structure

.claude/skills/gitlab/
├── SKILL.md                    # This file
├── requirements.txt            # Python dependencies
└── scripts/
    ├── gitlab_client.py        # Core GitLab REST API client
    └── gitlab_helper.py        # High-level repository operations

Project root contains:

  • ~/.claude/.env - API credentials (GITLAB_API_TOKEN)

Quick Start

Using GitLabHelper (Recommended)

import sys
sys.path.insert(0, '.claude/skills/gitlab/scripts')

from gitlab_helper import GitLabHelper

helper = GitLabHelper()
helper.connect()

# List projects
projects = helper.list_projects(membership=True)

# Get a specific project
project = helper.get_project("group/project-name")

# Get file content
content = helper.get_file_content("group/project", "README.md", ref="main")

# List files in repository
files = helper.list_files("group/project", path="src/", recursive=True)

# Get recent commits
commits = helper.get_commits("group/project", branch="main", limit=10)

# List open merge requests
mrs = helper.list_merge_requests(project_path="group/project", state="opened")

# Get my MRs
my_mrs = helper.get_my_merge_requests()

# List pipelines
pipelines = helper.list_pipelines("group/project", status="success")

# Get pipeline jobs
jobs = helper.get_pipeline_jobs("group/project", pipeline_id=12345)

# Get job log
log = helper.get_job_log("group/project", job_id=67890)

# Search code
results = helper.search_code("function_name", project_path="group/project")

Using GitLabClient Directly

import sys
sys.path.insert(0, '.claude/skills/gitlab/scripts')

from gitlab_client import GitLabClient

client = GitLabClient()
client.authenticate()

# Get current user
user = client.get_current_user()

# Get projects
projects = client.get_projects(membership=True, per_page=20)

# Get project by path
project = client.get_project_by_path("group/project")

# Get branches
branches = client.get_branches("group/project")

# Get tags
tags = client.get_tags("group/project")

# Get file content
content = client.get_file_content("group/project", "src/main.py", ref="main")

# Get repository tree
tree = client.get_tree("group/project", path="src/", recursive=True)

# Get merge requests
mrs = client.get_merge_requests(project_id="group/project", state="opened")

# Get pipelines
pipelines = client.get_pipelines("group/project", status="running")

# Global search
results = client.search("query", scope="blobs", project_id="group/project")

Available Operations

GitLabHelper Methods

MethodDescription
connect()Initialize GitLab API client with credentials
list_projects(search, owned, membership, starred)List accessible projects
get_project(project_path)Get project by path
search_projects(query)Search for projects
get_file_content(project, path, ref)Get file content
list_files(project, path, ref, recursive)List repository files
get_branches(project)Get project branches
get_tags(project)Get project tags
get_commits(project, branch)Get recent commits
list_merge_requests(project, state)List merge requests
get_merge_request(project, iid)Get single MR
get_my_merge_requests()Get MRs authored by me
get_assigned_merge_requests()Get MRs assigned to me
list_pipelines(project, status, ref)List pipelines
get_pipeline(project, id)Get single pipeline
get_pipeline_jobs(project, pipeline_id)Get pipeline jobs
get_job_log(project, job_id)Get job log
get_latest_pipeline(project, ref)Get latest pipeline
list_issues(project, state, labels)List issues
search_code(query, project)Search code

GitLabClient Methods

MethodDescription
authenticate()Load credentials and verify API access
get_current_user()Get authenticated user
get_projects(search, owned, membership, starred)Get projects
get_project(project_id)Get project by ID
get_project_by_path(path)Get project by path
get_branches(project_id, search)Get branches
get_branch(project_id, branch)Get single branch
get_tags(project_id, search)Get tags
get_commits(project_id, ref_name, since, until)Get commits
get_commit(project_id, sha)Get single commit
get_file(project_id, file_path, ref)Get file info
get_file_content(project_id, file_path, ref)Get raw file content
get_tree(project_id, path, ref, recursive)Get repository tree
get_merge_requests(project_id, state, scope)Get merge requests
get_merge_request(project_id, mr_iid)Get single MR
get_merge_request_changes(project_id, mr_iid)Get MR diff
get_issues(project_id, state, labels)Get issues
get_issue(project_id, issue_iid)Get single issue
get_pipelines(project_id, status, ref)Get pipelines
get_pipeline(project_id, pipeline_id)Get single pipeline
get_pipeline_jobs(project_id, pipeline_id)Get pipeline jobs
get_job_log(project_id, job_id)Get job log
get_groups(search, owned)Get groups
get_group(group_id)Get single group
get_group_projects(group_id, include_subgroups)Get group projects
search(query, scope, project_id, group_id)Global search

Common Tasks

1. Check Pipeline Status

# Get latest pipeline for a branch
pipeline = helper.get_latest_pipeline("group/project", ref="main")
print(f"Pipeline #{pipeline.id}: {pipeline.status}")

# Get failed jobs
if pipeline.status == "failed":
    jobs = helper.get_pipeline_jobs("group/project", pipeline.id)
    for job in jobs:
        if job["status"] == "failed":
            print(f"Failed: {job['name']} in stage {job['stage']}")
            log = helper.get_job_log("group/project", job["id"])
            print(log[-1000:])  # Last 1000 chars

2. Review Merge Requests

# Get open MRs assigned to me
mrs = helper.get_assigned_merge_requests()
for mr in mrs:
    print(f"!{mr.iid}: {mr.title}")
    print(f"  {mr.source_branch} -> {mr.target_branch}")
    print(f"  Author: {mr.author}")
    print(f"  URL: {mr.web_url}")

3. Browse Repository

# List files in a directory
files = helper.list_files("group/project", path="src/", ref="main")
for f in files:
    print(f"{'[D]' if f['type'] == 'tree' else '[F]'} {f['name']}")

# Read a file
content = helper.get_file_content("group/project", "src/config.py", ref="main")
print(content)

4. Search Code

# Search for a function across projects
results = helper.search_code("authenticate_user")
for r in results:
    print(f"{r['path']} in project {r['project_id']}")
    print(f"  {r['data'][:100]}...")

5. Check Recent Activity

# Get recent commits
commits = helper.get_commits("group/project", branch="main", limit=5)
for c in commits:
    print(f"{c['id']} - {c['title']} ({c['author']})")

# Get recent tags
tags = helper.get_tags("group/project", limit=5)
for t in tags:
    print(f"{t['name']} - {t['message']}")

Error Handling

Common errors and solutions:

ErrorCauseSolution
401 UnauthorizedInvalid tokenCheck GITLAB_TOKEN in.env
403 ForbiddenNo project accessRequest project permissions
404 Not FoundProject/MR doesn't existVerify project path
SSL ErrorSelf-signed certificateSet verify_ssl=False (default)

Running Scripts

# Run the helper example
python .claude/skills/gitlab/scripts/gitlab_helper.py

# Run client directly with search
python .claude/skills/gitlab/scripts/gitlab_client.py --search "project-name"

Configuration

The client reads settings from environment:

Creating a Personal Access Token

  1. Go to GitLab → User Settings → Access Tokens
  2. Create token with scopes: api, read_api, read_repository
  3. Add to ~/.claude/.env: GITLAB_API_TOKEN=glpat-xxxxxxxxxxxx

API Limits

  • Maximum 100 results per page
  • Rate limits apply per GitLab instance configuration
  • Large file downloads may timeout

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Local Agent

76.43%
按下载量换算209

安全审计

暂无安全审计结果可展示。

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills