项目设置

使用设置页面来管理项目中的配置选项。

查看项目设置

您必须至少具有维护者角色才能查看项目设置。

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 要显示一个部分中的所有设置,请选择 展开
  4. 可选。使用搜索框查找设置。

编辑项目名称和描述

使用项目通用设置来编辑您的项目详细信息。

  1. 至少以维护者角色登录极狐GitLab。
  2. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  3. 在左侧边栏中,选择 设置 > 通用
  4. 项目名称 文本框中,输入您的项目名称。
  5. 项目描述 文本框中,输入您的项目描述。
  6. 项目头像 下,要更改您的项目头像,请选择 选择文件

将主题分配给项目

使用主题对项目进行分类并查找类似的新项目。

将主题分配给项目:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 主题 文本框中,输入项目主题。键入时会建议热门主题。
  4. 选择 保存更改

合规框架

  • 引入于 13.9 版本
  • 功能标志移除于 13.12 版本

您可以创建合规框架标记来标识您的项目具有某些合规要求或需要额外监督。标记可以选择应用合规流水线配置

群组所有者可以创建、编辑和删除合规性框架:

  1. 在顶部栏上,选择 菜单 > 群组 并找到您的群组。
  2. 在左侧边栏上,选择 设置 > 通用
  3. 展开 合规性框架 部分。

然后可以使用以下方法将创建的合规性框架分配给群组内的项目:

  • GitLab UI,使用项目设置页面
  • 在 14.2 及更高版本,使用 GraphQL API。
note如果用户具有正确的权限,则使用 GraphQL 在子组上创建合规性框架会导致在根祖先上创建框架。UI 提供了一个只读视图来阻止这种行为。

合规流水线配置

  • 引入于 13.9 版本。通过 ff_evaluate_group_level_compliance_pipeline 功能标志默认禁用。
  • 默认启用于 13.11 版本。
  • 功能标志移除于 14.2 版本。

群组所有者可以使用合规性流水线配置向项目添加额外的流水线配置,以定义合规性要求,例如扫描或测试。作为该流水线的一部分,include 语句可以引用本地项目的 .gitlab-ci.yml 文件。这样,合规流水线作业可以在流水线运行时与项目特定的作业一起运行。 合规流水线中定义的作业和变量不能被本地项目的 .gitlab-ci.yml 文件中的变量更改。

设置合规性框架时,使用 合规性流水线配置 框,将合规性框架链接到特定的 CI/CD 配置。使用 path/file.y[a]ml@group-name/project-name 格式。例如:

  • .compliance-ci.yml@gitlab-cn/gitlab.
  • .compliance-ci.yaml@gitlab-cn/gitlab.

此配置由应用了合规性框架标志的项目继承。结果除了项目自己的 CI/CD 配置外,还会强制带有标记的项目运行合规性 CI/CD 配置。当带有合规性框架标签的项目执行流水线时,它会按以下顺序评估配置:

  1. 合规流水线配置。
  2. 项目特定的流水线配置。

在项目中运行流水线的用户必须至少具有合规性项目的报告者角色。

示例 .compliance-gitlab-ci.yml

# Allows compliance team to control the ordering and interweaving of stages/jobs.
# Stages without jobs defined will remain hidden.
stages:
  - pre-compliance
  - build
  - test
  - pre-deploy-compliance
  - deploy
  - post-compliance

variables:  # Can be overridden by setting a job-specific variable in project's local .gitlab-ci.yml
  FOO: sast

sast:  # None of these attributes can be overridden by a project's local .gitlab-ci.yml
  variables:
    FOO: sast
  image: ruby:2.6
  stage: pre-compliance
  rules:
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
      when: never
    - when: always  # or when: on_success
  allow_failure: false
  before_script:
    - "# No before scripts."
  script:
    - echo "running $FOO"
  after_script:
    - "# No after scripts."

sanity check:
  image: ruby:2.6
  stage: pre-deploy-compliance
  rules:
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
      when: never
    - when: always  # or when: on_success
  allow_failure: false
  before_script:
    - "# No before scripts."
  script:
    - echo "running $FOO"
  after_script:
    - "# No after scripts."

audit trail:
  image: ruby:2.6
  stage: post-compliance
  rules:
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
      when: never
    - when: always  # or when: on_success
  allow_failure: false
  before_script:
    - "# No before scripts."
  script:
    - echo "running $FOO"
  after_script:
    - "# No after scripts."

include:  # Execute individual project's configuration (if project contains .gitlab-ci.yml)
  project: '$CI_PROJECT_PATH'
  file: '$CI_CONFIG_PATH'
  ref: '$CI_COMMIT_REF_NAME'  # Must be defined or MR pipelines always use the use default branch.

当用于强制执行扫描时,此功能与扫描执行策略有一些重叠,还没有统一这两个功能的用户体验。 有关这些功能之间的异同的详细信息,请参阅强制执行扫描

确保合规性作业始终运行

合规性流水线使用 GitLab CI/CD 为您提供难以置信的灵活性,用于定义您喜欢的任何类型的合规性工作。根据您的目标,这些作业可以配置为:

  • 由用户修改。
  • 不可修改。

在高级别上,如果合规性工作中的值:

  • 已设置,不能被项目级配置更改或覆盖。
  • 未设置,可以设置项目级配置。

根据您的用例,可能需要或不需要。

有一些最佳实践可以确保这些作业始终按照您定义的方式运行,并且下游的项目级流水线配置无法更改它们:

  • 为您的每个合规性工作添加一个 rules:when:always 块。这确保它们不可修改并且始终运行。
  • 显式设置作业引用的任何变量:
    • 确保项目级流水线配置不会设置它们并改变它们的行为。
    • 包括推动作业逻辑的任何作业。
  • 显式设置容器镜像文件以在其中运行作业。可确保您的脚本步骤在正确的环境中执行。
  • 显式设置任何相关的预定义作业关键字。可确保您的作业使用您想要的设置,并且它们不会被项目级流水线覆盖。

避免父流水线和子流水线(14.7 及之前的版本)

note此建议不适用于 14.8 及更高版本,因为修复增加了组合合规性流水线以及父子流水线的兼容性。

合规性流水线始于相关项目中每个流水线的运行。这意味着如果相关项目中的流水线触发子流水线,则合规流水线首先运行。可以触发父流水线,而不是子流水线。

因此,在具有合规性框架的项目中,我们建议将父子流水线替换为以下内容:

  • 直接 include 语句,为父流水线提供子流水线配置。
  • 放置在另一个项目中的子流水线使用 trigger API 而不是父子流水线功能运行。

此替代方法可确保合规性流水线不会重新启动父流水线。

配置项目可见性、功能和权限

要为项目配置可见性、功能和权限:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 可见性、项目功能、权限 部分。
  4. 要更改项目可见性,请选择下拉列表。如果您选择 公开,则会将某些功能的访问权限限制为 仅项目成员
  5. 要允许用户请求访问项目,请选中 用户可以请求访问 复选框。
  6. 使用切换开关,启用或禁用项目中的功能。
  7. 选择 保存更改

项目功能设置

使用切换开关来启用或禁用项目中的功能。

选项 更多访问限制选项 描述
议题 激活极狐GitLab 议题跟踪器
仓库 启用仓库功能
合并请求 启用合并请求功能
派生 启用派生功能
Git 大文件存储 (LFS)   允许使用大文件
软件包   支持软件包库功能
CI/CD 启用 CI/CD 功能
Container Registry   为您的 Docker 镜像激活仓库
分析 启用分析
需求 控制对需求管理的访问
安全与合规 控制对安全功能的访问
Wiki 启用单独的文档系统
代码片段 允许分享代码和文本
Pages 允许您发布静态网站
运维 控制对运维仪表盘的访问
指标仪表板 控制对指标仪表板的访问

当您禁用某个功能时,以下附加功能也会被禁用:

  • 如果禁用议题功能,项目用户将无法使用:

    • 议题看板
    • 服务台
    • 项目用户仍然可以通过合并请求访问里程碑
  • 如果禁用议题合并请求,项目用户将无法使用:

    • 标记
    • 里程碑
  • 如果您禁用仓库,项目用户将无法使用:
    • 合并请求
    • CI/CD
    • 容器镜像库
    • Git 大文件存储
    • 软件包
  • 指标仪表盘访问需要读取项目环境和部署。有权访问指标仪表板的用户还可以访问环境和部署。

禁用项目电子邮件通知

先决条件:

  • 您必须是项目的所有者才能禁用与项目相关的电子邮件通知。
  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 可见性、项目功能、权限 部分。
  4. 清除 禁用电子邮件通知 复选框。

为项目配置合并请求设置

设置项目的合并请求设置:

服务台

为您的项目启用服务台以提供客户支持。

高级项目设置

使用高级设置来归档、重命名、转移、删除派生关系或删除项目。

归档项目

归档项目时,仓库、软件包、议题、合并请求和所有其他功能都是只读的。存档的项目也会从项目列表中隐藏。

要归档项目:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 高级
  4. 存档项目 部分,选择 存档项目
  5. 要确认,请选择 OK

取消归档项目

取消归档项目时,您将删除只读限制并使其在项目列表中可用。

先决条件:

  • 要取消归档项目,您必须是管理员或项目所有者。
  1. 找到存档的项目。
    1. 在顶部栏上,选择 菜单 > 项目
    2. 选择 浏览项目
    3. 排序项目 下拉列表,选择 显示已归档的项目
    4. 按名称过滤 字段中,输入项目名称。
    5. 选择项目链接。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 高级 下,单击 扩展
  4. 取消归档项目 部分,单击 取消归档项目 按钮。
  5. 要确认,选择 OK

重命名仓库

项目的仓库名称定义了它的 URL 和它安装在极狐GitLab 实例文件磁盘上的位置。

先决条件:

  • 您必须是项目维护者或管理员才能重命名仓库。
note当您更改仓库路径时,如果用户推送到旧 URL 或从旧 URL 拉取,他们可能会遇到问题。有关更多信息,请参阅重命名仓库时重定向

要重命名仓库:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 高级 部分。
  4. 更改路径 文本框中,编辑路径。
  5. 选择 更改路径

将项目转移到另一个命名空间

当您将项目转移到另一个命名空间时,您将项目移动到不同的群组。

先决条件:

  • 您必须至少具有要转移到的群组的维护者角色。
  • 您必须是要转移的项目的所有者。
  • 该群组必须允许创建新项目。
  • 该项目不得包含任何容器镜像
    • 如果您将项目转移到不同的根命名空间,则该项目不得包含任何 NPM 包

要转移项目:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 高级
  4. 转移项目 下,选择要将项目转移到的命名空间。
  5. 选择 转移项目
  6. 输入项目名称并选择 确认

您将被重定向到项目的新页面,极狐GitLab 会应用重定向。有关仓库重定向的更多信息,请参阅仓库路径更改时会发生什么

note如果您是管理员,您还可以使用管理界面将任何项目移动到任何命名空间。

删除一个项目

您可以标记要删除的项目。

先决条件:

  • 您必须至少具有项目的所有者角色。

要删除项目:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏上,选择 设置 > 通用
  3. 展开 高级
  4. 在“删除项目”部分,选择 删除项目
  5. 根据要求确认操作。

此操作将删除包含所有关联资源(议题、合并请求等)的项目。

延迟项目删除

在 15.1 版本中,可以为个人命名空间中的项目启用。

延迟一段时间后可以删除群组中的项目。多个设置会影响是否为特定项目启用延迟项目删除:

  • 在私有化部署版实例设置,您可以启用延迟删除项目作为新群组的默认设置,并配置延迟天数。
  • 在群组设置中,为群组中的所有项目启用延迟项目删除。

立即删除一个项目

引入于 14.1 版本。

如果您不想等待,可以立即删除项目。

先决条件:

要立即删除标记为删除的项目:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏上,选择 设置 > 通用
  3. 展开 高级
  4. 在“永久删除项目”部分,选择删除项目
  5. 根据要求确认操作。

删除了以下内容:

  • 您的项目及其仓库。
  • 所有相关资源,包括议题和合并请求。

恢复项目

要恢复标记为删除的项目:

  1. 导航到您的项目,然后选择 设置 > 通用 > 高级
  2. 在恢复项目部分,点击 恢复项目 按钮。

删除一个派生关系

先决条件:

  • 您必须是项目所有者才能删除派生关系。
caution删除后,您无法向源发送合并请求,如果有人派生了您的项目,他们的派生也会失去关系。

要删除派生关系:

  1. 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  2. 在左侧边栏中,选择 设置 > 通用
  3. 展开 高级
  4. 删除派生关系 部分,选择 删除派生关系
  5. 确认,输入项目路径并选择 确认