管理项目

极狐GitLab 中的大部分工作都是在项目中完成的。文件和代码保存在项目中,大部分功能都在项目范围内。

查看项目

要查看项目,请在顶部栏中选择 主菜单 > 项目 > 查看所有项目

note未经身份验证的用户可以看到 浏览项目 选项卡,除非限制了公开可见性级别,然后该选项卡仅对登录用户可见。

谁可以查看项目页面

当您选择一个项目时,项目登录页面会显示项目内容。

对于公开项目,以及有权查看项目代码的内部和私有项目成员,项目登陆页面显示:

对于没有权限查看项目代码的用户,登陆页面显示:

  • wiki 主页。
  • 项目中的议题列表。

使用项目 ID 访问项目页面

要使用项目 ID 从 GitLab UI 访问项目,请在浏览器或其他访问项目的工具中访问 /projects/:id URL。

浏览主题

要浏览项目主题:

  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目
  2. 选择 浏览主题 选项卡。
  3. 要查看与某个主题相关的项目,请选择一个主题。

浏览主题选项卡显示按相关项目数量排序的主题列表。 要查看与主题关联的项目,请从列表中选择一个主题。

您可以在项目设置页面上为项目分配主题。

如果您是实例管理员,则可以从管理中心的主题页面,管理所有项目主题。

星标一个项目

您可以为经常使用的项目添加星号,以便更容易找到它们。

给项目加星:

  1. 在顶部栏上,选择 主菜单 > 项目,并找到您的项目。
  2. 在页面右上角,选择 星标

查看星标项目

  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目
  2. 选择 星标项目 选项卡。
  3. 系统显示有关您已加星标的项目的信息,包括:

    • 项目描述,包括名称、描述和图标。
    • 该项目被星标的次数。
    • 该项目被派生的次数。
    • 打开合并请求的数量。
    • 开放议题的数量。

查看个人项目

个人项目是在您的个人命名空间下创建的项目。

例如,如果您使用用户名 alex 创建一个帐户,并在您的用户名下创建一个名为 my-project 的项目,则该项目将创建在 https://gitlab.example.com/alex/my-project

查看您的个人项目:

  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目
  2. 您的项目 选项卡中,选择 个人

删除项目

删除项目后,个人命名空间中的项目会立即删除。要延迟删除群组中的项目,您可以启用延迟项目删除

要删除项目:

  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目,并找到您的项目。
  2. 选择 设置 > 通用
  3. 展开 高级 部分。
  4. 向下滚动到 删除项目 部分。
  5. 选择 删除项目
  6. 通过填写字段确认此操作。

查看待删除的项目

  • 于 14.8 版本中适用于所有用户,功能标志名为 project_owners_list_project_pending_deletion。默认启用。

当为群组启用延迟项目删除时,该群组中的项目不会立即删除,而只会在延迟后删除。要访问所有待删除项目的列表:

  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目
  2. 选择 待删除 选项卡(在 14.6 及更高版本中)或 已删除项目 选项卡(GitLab 14.5 及更早版本)。

为每个项目列出:

  • 项目被标记为删除的时间。
  • 计划最终删除项目的时间。
  • 一个 还原 链接,可以阻止项目最终被删除。

查看项目动态

要查看项目的动态:

  1. 在顶部栏上,选择 主菜单 > 项目,并找到您的项目。
  2. 在左侧边栏上,选择 项目信息 > 动态
  3. 选择一个选项卡以查看项目动态的类型。

在项目中搜索

您可以搜索您的项目。

  1. 在顶部栏上,选择 主菜单
  2. 搜索您的项目 中,输入项目名称。

系统在您键入时进行过滤。

您还可以查找您已加星标的项目。

您可以按以下方式对项目进行排序:

  • 姓名
  • 创建日期
  • 更新日期
  • 所有者

您还可以选择隐藏或显示归档项目。

按语言过滤项目

  • 引入于 15.9 版本,功能标志project_language_search。默认启用。
  • 一般可用于 15.9 版本。功能标志 project_language_search 已删除。

您可以按项目使用的编程语言过滤项目:

  1. 在顶部栏中,选择 主菜单 > 项目 > 查看所有项目
  2. 语言 下拉列表中,选择您要作为筛选项目依据的语言。

显示使用所选语言的项目列表。

更改项目中各个功能的可见性

您可以更改项目中各个功能的可见性。

先决条件:

  • 您必须具有项目的所有者角色。
  1. 在顶部栏中,选择 主菜单 > 项目 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 可见性、项目功能、权限
  4. 使用您要打开或关闭的每个功能旁边的开关,或更改访问权限。
  5. 选择 保存更改

离开项目

当您离开一个项目时:

  • 您不再是项目成员,不能贡献代码。
  • 指派给您的所有议题和合并请求均变为无指派人。

离开项目:

  1. 在顶部栏上,选择 主菜单 > 项目,并找到您的项目。
  2. 选择 离开项目离开项目 选项仅在项目属于群组命名空间下的群组时,才会显示在项目仪表板上。

使用项目作为 Go 包

先决条件:

  • 联系您的管理员以启用 GitLab Go Proxy。
  • 要将子组中的私有项目用作 Go 包,您必须验证 Go 请求。未经身份验证的 Go 请求会导致 go get 失败。 对于不在子组中的项目,您不需要验证 Go 请求。

要将项目用作 Go 包,请使用 go getgodoc.org 发现请求。您可以使用元标签:

验证对私有项目的 Go 请求

先决条件:

  • 您的极狐GitLab 实例必须可通过 HTTPS 访问。
  • 您必须拥有个人访问令牌,包含 read_api 范围。

要验证 Go 请求,请创建一个 .netrc 文件,其中包含以下信息:

machine gitlab.example.com
login <gitlab_user_name>
password <personal_access_token>

在 Windows 上,Go 读取 ~/_netrc 而不是 ~/.netrc

go 命令不会通过不安全的连接传输凭据。它验证 Go 发出的 HTTPS 请求,但不验证通过 Git 发出的请求。

验证 Git 请求

如果 Go 无法从代理获取模块,它会使用 Git。Git 使用 .netrc 文件对请求进行身份验证,但您可以配置其他身份验证方法。

将 Git 配置为:

  • 在请求 URL 中嵌入凭据:

      git config --global url."https://${user}:${personal_access_token}@gitlab.example.com".insteadOf "https://gitlab.example.com"
    
  • 使用 SSH 而不是 HTTPS:

      git config --global url."git@gitlab.example.com".insteadOf "https://gitlab.example.com/"
    

禁用私有项目的 Go 模块获取

为了获取模块或包,Go 使用环境变量:

  • GOPRIVATE
  • GONOPROXY
  • GONOSUMDB

要禁用获取:

  1. 禁用 GOPRIVATE
    • 要禁用对一个项目的查询,请禁用 GOPRIVATE=gitlab.example.com/my/private/project
    • 要禁用 SaaS 上所有项目的查询,请禁用 GOPRIVATE=gitlab.example.com
  2. GONOPROXY 中禁用代理查询。
  3. 禁用 GONOSUMDB 中的校验和查询。 - 如果模块名称或其前缀在 GOPRIVATEGONOPROXY 中,Go 不会查询模块代理。 - 如果模块名称或其前缀在 GONOPRIVATEGONOSUMDB 中,Go 不会查询校验和数据库。

从 Geo 次要站点获取 Go 模块

使用 Geo 访问包含次要 Geo 服务器上的 Go 模块的 Git 存储库。

您可以使用 SSH 或 HTTP 访问 Geo 次要服务器。

使用 SSH 访问 Geo 次要服务器

要使用 SSH 访问 Geo 次要服务器:

  1. 在客户端重新配置 Git 以将主服务器的流量发送到次要服务器:

    git config --global url."git@gitlab-secondary.example.com".insteadOf "https://gitlab.example.com"
    git config --global url."git@gitlab-secondary.example.com".insteadOf "http://gitlab.example.com"
    
    • For gitlab.example.com, use the primary site domain name.
    • For gitlab-secondary.example.com, use the secondary site domain name.
  2. 确保客户端设置为通过 SSH 访问 GitLab 仓库。您可以在主服务器上进行测试,系统会将公钥复制到次要服务器。

go get 请求生成到主 Geo 服务器的 HTTP 流量。当模块下载开始时,insteadOf 配置将流量发送到次要 Geo 服务器。

使用 HTTP 访问 Geo 次要节点

您必须使用复制到次要服务器的持久访问令牌。您不能使用 CI/CD 作业令牌通过 HTTP 获取 Go 模块。

使用 HTTP 访问 Geo 次要服务器:

  1. 在客户端添加一个 Git insteadOf 重定向:

    git config --global url."https://gitlab-secondary.example.com".insteadOf "https://gitlab.example.com"
    
    • 对于 gitlab.example.com,使用主站点域名。
    • 对于 gitlab-secondary.example.com,使用次要站点域名。
  2. 生成个人访问令牌并在客户端的~/.netrc 文件中添加凭据:

    machine gitlab.example.com login USERNAME password TOKEN
    machine gitlab-secondary.example.com login USERNAME password TOKEN
    

go get 请求生成到主 Geo 服务器的 HTTP 流量。当模块下载开始时,insteadOf 配置将流量发送到次要 Geo 服务器。