管理项目

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

查看项目

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

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

谁可以查看项目页面

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

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

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

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

使用项目 ID 访问项目页面

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

浏览主题

要浏览项目主题:

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

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

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

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

创建项目

要在极狐GitLab 中创建项目:

  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目
  2. 在页面右侧,选择 新建项目
  3. 选择一个选项:
note有关不能用作项目名称的单词列表,请参阅保留的项目和群组名称

创建空白项目

要创建空白项目:

  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目
  2. 在页面右侧,选择 新建项目
  3. 选择 创建空白项目
  4. 输入项目详情:
    • 项目名称 字段中,输入您的项目名称。您不能在项目名称的开头或结尾使用特殊字符。
    • 项目标识串 字段中,输入项目的路径。极狐GitLab 实例使用标识串作为项目的 URL 路径。要更改标识串,首先输入项目名称,然后更改标识串。
    • 项目部署目标(可选) 字段中,选择项目的部署目标。
    • 要为用户修改项目的查看和访问权限,请更改 可见性级别
    • 要创建 README 文件以便初始化 Git 仓库、具有默认分支并可以克隆,请选择 使用自述文件初始化仓库
    • 要分析项目中的源代码是否存在已知安全漏洞,请选择 启用静态应用程序安全测试 (SAST)
  5. 选择 创建项目

从内置模板创建项目

要从内置模板创建项目:

  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目
  2. 在页面右侧,选择 新建项目
  3. 选择 从模板创建
  4. 选择 内置 选项卡。
  5. 从模板列表中:
    • 要查看模板的预览,请选择 预览
    • 要为项目使用模板,请选择 使用模板
  6. 输入项目详情:
    • 项目名称 字段中,输入您的项目名称。您不能在项目名称的开头或结尾使用特殊字符。
    • 项目标识串 字段中,输入项目的路径。极狐GitLab 实例使用标识串作为项目的 URL 路径。要更改标识串,首先输入项目名称,然后更改标识串。
    • 要创建 README 文件以便初始化 Git 仓库、具有默认分支并可以克隆,请选择 使用自述文件初始化仓库
    • 要分析项目中的源代码是否存在已知安全漏洞,请选择 启用静态应用程序安全测试 (SAST)
  7. 选择 创建项目

从自定义模板创建项目

自定义项目模板可在以下位置获得:

  • 实例级别
  • 群组级别
  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目
  2. 在页面右侧,选择 新建项目
  3. 选择 从模板创建
  4. 选择 实例群组 选项卡。
  5. 从模板列表中:
    • 要查看模板的预览,请选择 预览
    • 要为项目使用模板,请选择 使用模板
  6. 输入项目详情:
    • 项目名称 字段中,输入您的项目名称。您不能在项目名称的开头或结尾使用特殊字符。
    • 项目标识串 字段中,输入项目的路径。极狐GitLab 实例使用标识串作为项目的 URL 路径。要更改标识串,首先输入项目名称,然后更改标识串。
    • 要创建 README 文件以便初始化 Git 仓库、具有默认分支并可以克隆,请选择 使用自述文件初始化仓库
    • 要分析项目中的源代码是否存在已知安全漏洞,请选择 启用静态应用程序安全测试 (SAST)
  7. 选择 创建项目

从 HIPAA 审计协议模板创建项目

HIPAA 审计协议模板包含美国卫生与公共服务部发布的 HIPAA 审计协议中的审计查询问题。

从 HIPAA 审计协议模板创建项目:

  1. 在顶部栏上,选择 主菜单 > 项目 > 查看所有项目
  2. 在页面右侧,选择 新建项目
  3. 选择 从模板创建
  4. 选择 内置选项卡。
  5. 找到 HIPAA 审计协议 模板:
    • 要查看模板的预览,请选择 预览
    • 要为项目使用模板,请选择 使用模板
  6. 输入项目详情:
    • 项目名称 字段中,输入您的项目名称。您不能在项目名称的开头或结尾使用特殊字符。
    • 项目标识串 字段中,输入项目的路径。极狐GitLab 实例使用标识串作为项目的 URL 路径。要更改标识串,首先输入项目名称,然后更改标识串。
    • 要创建 README 文件以便初始化 Git 仓库、具有默认分支并可以克隆,请选择 使用自述文件初始化仓库
    • 要分析项目中的源代码是否存在已知安全漏洞,请选择 启用静态应用程序安全测试 (SAST)
  7. 选择 创建项目

推送创建一个新项目

使用 git push 将本地项目仓库推送到极狐GitLab。推送仓库后,极狐GitLab 在您选择的命名空间中创建您的项目。

您不能使用 git push 来创建具有以下项目路径的项目:

以前使用的项目路径有一个重定向,重定向会导致推送尝试将请求重定向到重命名的项目位置,而不是创建新项目。要为以前使用过或重命名的项目创建新项目,请使用 UI 或项目 API。

先决条件:

  • 要使用 SSH 推送,您必须有一个 SSH 密钥,添加到您的极狐GitLab 帐户。
  • 您必须具有向命名空间添加新项目的权限。要检查您是否有权限:

    1. 在顶部栏上,选择 主菜单 > 群组,并找到您的群组。
    2. 确认右上角有 新建项目。如果您需要权限,请联系您的 GitLab 管理员。

要推送您的仓库并创建一个项目:

  1. 使用 SSH 或 HTTPS 推送:
    • 使用 SSH 推送:

       git push --set-upstream git@gitlab.example.com:namespace/myproject.git master
      
    • 使用 HTTPS 推送:

       git push --set-upstream https://gitlab.example.com/namespace/myproject.git master
      
    • 对于 gitlab.example.com,使用托管 Git 仓库的机器的域名。
    • 对于 namespace,使用您的命名空间的名称。
    • 对于 myproject,使用你的项目名称。
    • 可选。要导出现有的仓库标签,请将 --tags 标志附加到您的 git push 命令。
  2. 可选。 要配置远端: shell git remote add origin https://gitlab.example.com/namespace/myproject.git

推送完成后,系统会显示以下消息:

remote: The private project namespace/myproject was created.

要查看您的新项目,请转到 https://gitlab.example.com/namespace/myproject。 默认情况下,您项目的可见性设置为 私有。要更改项目可见性,请调整您的项目设置。

星标一个项目

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

给项目加星:

  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. 搜索您的项目 中,输入项目名称。

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

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

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

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

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

离开一个项目

如果您离开项目,您将不再是项目成员并且无法做出贡献。

离开项目:

  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 服务器。