名称: search-code 描述: 在您的GitLab实例中搜索代码
搜索GitLab代码
名称
gitlab:search-code - 在您的GitLab实例中搜索代码
概要
/search-code [参数]
描述
在您的GitLab实例中搜索代码
实现
使用语义或关键字搜索在您的GitLab实例中搜索代码、文件或实现。
用法
/search-code [查询]
此命令帮助您在所有可访问的项目中找到相关代码。
此命令的功能
- 接受自然语言查询或搜索词
- 首先尝试语义代码搜索(仅限GitLab.com)
- 如果语义搜索不可用,则回退到关键字搜索
- 返回相关代码片段,包括:
- 文件路径和行号
- 匹配周围的上下文
- 项目名称和链接
- 相关性分数(用于语义搜索)
前提条件
- 必须安装并配置GitLab MCP服务器
- 必须完成OAuth认证
- 对于语义搜索:需要启用GitLab Duo的GitLab.com账户
示例交互
语义搜索(GitLab.com)
用户: /search-code JWT令牌验证是如何实现的?
Claude: 正在搜索JWT令牌验证的实现...
找到4个相关代码片段:
### 1. auth-service/src/middleware/validateToken.ts (相关性: 95%)
```typescript
export function validateJWT(token: string): UserPayload {
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
return decoded as UserPayload;
} catch (error) {
throw new UnauthorizedError('无效令牌');
}
}
2. api-gateway/lib/security/jwt.ts (相关性: 87%)
async function verifyToken(req: Request): Promise<boolean> {
const token = req.headers.authorization?.split(' ')[1];
if (!token) return false;
return await jwt.verify(token, publicKey, { algorithms: ['RS256'] });
}
3. user-service/utils/auth.ts (相关性: 82%)
const validateAuthToken = (token: string) => {
const payload = jwt.decode(token, { complete: true });
return payload?.exp && payload.exp > Date.now() / 1000;
};
您想查看更多结果或探索任何这些实现吗?
### 关键字搜索
用户: /search-code 认证中间件
Claude: 正在搜索“认证中间件”…
在4个项目中找到7个结果:
项目: api-service
- src/middleware/auth.ts:15 -
export const authenticationMiddleware = async - src/middleware/auth.ts:42 -
// 用于受保护路由的认证中间件
项目: user-api
- lib/middleware/authenticate.ts:8 -
class AuthenticationMiddleware { - lib/middleware/authenticate.ts:23 -
// 主要认证检查
项目: microservices-core
- shared/middleware/auth.ts:5 -
const authMiddleware = (req, res, next) => {
您想查看任何这些文件的完整上下文吗?
## 参数
- `查询`(必需):自然语言描述或搜索关键词
- 对于语义搜索:“我们如何处理用户权限?”
- 对于关键字搜索:“redis缓存实现”
## 搜索类型
### 语义搜索(仅限GitLab.com)
最适合:
- 理解某物如何工作
- 通过概念找到实现
- 发现相关代码
- 架构问题
示例:
- “数据库迁移是如何处理的?”
- “我们在哪里验证API请求?”
- “显示错误处理模式”
### 关键字搜索(所有实例)
最适合:
- 查找特定函数或类名
- 按名称定位文件
- 搜索精确文本匹配
- 查找配置值
示例:
- “validateUserInput函数”
- “config.yml数据库”
- “TODO: 修复内存泄漏”
## 提示
- 使用自然语言进行语义搜索
- 查询要具体
- 结合其他命令进行深入分析
- 在关键字搜索中使用引号进行精确短语匹配
- 如果结果不相关,优化查询
- 检查多个项目以保持一致性
- 搜索所有项目时考虑隐私
## 高级用法
### 带范围的搜索
用户: /search-code 查找所有测试认证的测试文件,范围:测试
Claude: 正在搜索测试文件中的认证测试…
### 在特定项目中搜索
用户: /search-code 在项目auth-service中搜索Redis缓存实现
Claude: 将搜索限制到auth-service项目…
### 按文件类型搜索
用户: /search-code 在YAML文件中搜索数据库连接配置
Claude: 正在搜索YAML文件中的数据库配置…
## 相关命令
- `/view-issue`: 在找到代码后查看相关问题
- `/create-issue`: 为搜索中发现的错误创建问题
- `/review-mr`: 审查搜索中找到的实现