在 GitLab 中搜索代码或文本

问题描述 投票:0回答:5

是否可以在 GitLab 中的文件内搜索代码或文本?我可以搜索文件、问题、里程碑等,但找不到在源文件中搜索代码或在文档中搜索文本(即 .doc 文件)的方法。

search gitlab
5个回答
6
投票

我们有一个付费的 gitlab 帐户,因此我们的域名是 gitlab.ourcompany.com - 所以这个答案可能并不适用于所有人。有几次我需要在 Gitlab 项目中的所有文件中搜索“字符串”,但没有明确的“搜索”按钮。搜索栏仅搜索匹配的项目名称 - 所以不是我要找的。下面这个方法是最容易使用也最容易记住的。

https://gitlab.xxxxx.com/search


5
投票

要在 GitLab 上搜索文件,请点击 URL https://gitlab.com/search?utf8=%E2%9C%93&search_code=true&repository_ref={BranchName}

从下拉列表中选择相应的组和项目。

输入要搜索的文字,然后点击“搜索”按钮。


1
投票

或者,您可以使用 python-gitlab 库来搜索您需要的项目中的文本:

import gitlab


def search(gitlab_server, token, file_filter, text, group=None, project_filter=None):
    return_value = []
    gl = gitlab.Gitlab(gitlab_server, private_token=token)
    if (project_filter == '') and (group == ''):
        projects = gl.projects.list(all=True)
    else:
        group_object = gl.groups.get(group)
        group_projects = group_object.projects.list(search=project_filter)
        projects = []
        for group_project in group_projects:
            projects.append(gl.projects.get(group_project.id))
    for project in projects:
        files = []
        try:
            files = project.repository_tree(recursive=True, all=True)
        except Exception as e:
            print(str(e), "Error getting tree in project:", project.name)
        for file in files:
            if file_filter == file['name']:
                file_content = project.files.raw(file_path=file['path'], ref='master')
                if text in str(file_content):
                    return_value.append({
                        "project": project.name,
                        "file": file['path']
                    })
    return return_value

完整的示例可以在这里找到:gitlab-search


1
投票

GitLab 16.2(2023 年 7 月)方便搜索,包括当前项目内的代码搜索:

命令面板

如果您是高级用户,使用键盘进行导航和执行操作可能会令人沮丧。现在,新的命令面板可帮助您使用键盘完成更多工作。

要启用命令面板,请打开左侧边栏并单击 Search GitLab (🔍) 或使用 / 键。

输入特殊字符之一:

  • > - 创建新对象或查找菜单项
  • @ - 搜索用户
  • : - 搜索项目
  • / - 在默认存储库分支中搜索项目文件

请参阅文档问题


0
投票

如果您启用了高级搜索,您可以使用

filename:
语法搜索文件内容,例如要在所有文件中搜索“字符串”,请将文件名留空:

string -filename:

这就是它在 Web-UI 中的样子:

© www.soinside.com 2019 - 2024. All rights reserved.