{{< details >}}

Tier: 基础版, 专业版, 旗舰版 Offering: JihuLab.com, 私有化部署 Status: 实验

{{< /details >}}

{{< history >}}

{{< /history >}}

您可以使用细粒度权限明确允许访问有限的一组 API 端点。这些权限应用于指定项目中的 CI/CD 作业令牌。

此功能是一个实验,可能会在未经通知的情况下更改。此功能尚未准备好用于生产环境。如果您想使用此功能,您应该先在生产环境之外进行测试。

启用细粒度权限的使用

先决条件:

  • 您必须拥有群组的 Owner 角色。

您必须在群组级别开启细粒度权限。然后,群组中的每个项目都可以应用细粒度权限,为 CI/CD 作业令牌授权访问单独的资源。

要为群组中的所有项目启用细粒度权限:

  1. 在左侧边栏,选择 搜索或前往 并找到您的群组。
  2. 在左侧边栏,选择 设置 > CI/CD
  3. 展开 通用流水线
  4. 打开 为 CI/CD 作业令牌启用细粒度权限 开关。

将细粒度权限添加到作业令牌允许列表

先决条件:

  • 您必须至少拥有项目的 维护者 角色。
  • 您必须为项目启用细粒度权限的使用。

您可以在作业令牌允许列表中为群组和项目添加细粒度权限。这使它们能够使用作业令牌访问特定的项目资源,并更准确地控制这些群组和项目可以使用哪些资源。

要将细粒度权限添加到作业令牌允许列表中的群组或项目:

  1. 在左侧边栏,选择 搜索或转到 并找到您的项目。
  2. 选择 设置 > CI/CD
  3. 展开 作业令牌权限
  4. CI/CD 作业令牌允许列表 部分,选择 添加
  5. 从下拉列表中选择 群组或项目
  6. 输入现有群组或项目的路径。
  7. 选择 细粒度权限
  8. 授予对可用 API 端点的权限。
  9. 选择 添加

极狐GitLab 将群组或项目添加到作业令牌允许列表中,具有指定的权限。该群组或项目现在可以访问当前项目中的任何允许资源。

可用的 API 端点

以下端点可用于 CI/CD 作业令牌。

None 表示细粒度权限无法控制对该端点的访问。

Permissions Permission Names Path Description
Deployments: Read and write ADMIN_DEPLOYMENTS DELETE /projects/:id/deployments/:deployment_id 删除特定部署
Deployments: Read and write ADMIN_DEPLOYMENTS POST /projects/:id/deployments/:deployment_id/approval 批准或拒绝阻止的部署
Deployments: Read and write ADMIN_DEPLOYMENTS PUT /projects/:id/deployments/:deployment_id 更新部署
Deployments: Read and write, Environments: Read and write ADMIN_DEPLOYMENTS, ADMIN_ENVIRONMENTS POST /projects/:id/deployments 创建部署
Deployments: Read READ_DEPLOYMENTS GET /projects/:id/deployments/:deployment_id/merge_requests 列出与部署关联的合并请求
Deployments: Read READ_DEPLOYMENTS GET /projects/:id/deployments/:deployment_id 获取特定部署
Deployments: Read READ_DEPLOYMENTS GET /projects/:id/deployments 列出项目部署
Environments: Read and write ADMIN_ENVIRONMENTS DELETE /projects/:id/environments/:environment_id 删除环境
Environments: Read and write ADMIN_ENVIRONMENTS DELETE /projects/:id/environments/review_apps 删除多个停止的审查应用
Environments: Read and write ADMIN_ENVIRONMENTS POST /projects/:id/environments/:environment_id/stop 停止环境
Environments: Read and write ADMIN_ENVIRONMENTS POST /projects/:id/environments/stop_stale 停止陈旧环境
Environments: Read and write ADMIN_ENVIRONMENTS POST /projects/:id/environments 创建新环境
Environments: Read and write ADMIN_ENVIRONMENTS PUT /projects/:id/environments/:environment_id 更新现有环境
Environments: Read READ_ENVIRONMENTS GET /projects/:id/environments/:environment_id 获取特定环境
Environments: Read READ_ENVIRONMENTS GET /projects/:id/environments 列出环境
Jobs: Read READ_JOBS GET /jobs/:id/artifacts 下载作业的产物文件
Jobs: Read READ_JOBS GET /projects/:id/jobs/:job_id/artifacts/*artifact_path 从产物归档中下载特定文件
Jobs: Read READ_JOBS GET /projects/:id/jobs/:job_id/artifacts 从作业下载产物归档
Jobs: Read READ_JOBS GET /projects/:id/jobs/artifacts/:ref_name/download 从作业下载产物归档
Jobs: Read READ_JOBS GET /projects/:id/jobs/artifacts/:ref_name/raw/*artifact_path 从 ref 的产物归档中下载特定文件
None   DELETE /projects/:id/registry/repositories/:repository_id/tags/:tag_name 删除仓库标签
None   DELETE /projects/:id/registry/repositories/:repository_id/tags 批量删除仓库标签
None   DELETE /projects/:id/registry/repositories/:repository_id 删除仓库
None   GET /group/:id/-/packages/composer/*package_name 群组级别的 Composer 软件包端点,用于软件包版本元数据
None   GET /group/:id/-/packages/composer/p/:sha 群组级别的 Composer 软件包端点,用于软件包列表
None   GET /group/:id/-/packages/composer/p2/*package_name 群组级别的 Composer v2 软件包 p2 端点,用于软件包版本元数据
None   GET /group/:id/-/packages/composer/packages 群组级别的 Composer 软件包端点
None   GET /groups/:id/-/packages/npm/*package_name NPM 注册表元数据端点
None   GET /groups/:id/-/packages/pypi/files/:sha256/*file_identifier 从群组下载软件包文件
None   GET /groups/:id/-/packages/pypi/simple/*package_name PyPi 简单群组软件包端点
None   GET /groups/:id/-/packages/pypi/simple PyPi 简单群组索引端点
None   GET /job/allowed_agents 获取当前代理
None   GET /job 使用作业令牌获取当前作业
None   GET /packages/conan/v1/conans/search 搜索软件包
None   GET /packages/conan/v1/ping Ping Conan API
None   GET /packages/conan/v1/users/authenticate 使用 conan CLI 验证用户
None   GET /packages/conan/v1/users/check_credentials 检查 conan CLI 用户凭证是否有效
None   GET /packages/npm/*package_name NPM 注册表元数据端点
None   GET /projects/:id/packages/conan/v1/conans/search 搜索软件包
None   GET /projects/:id/packages/conan/v1/ping Ping Conan API
None   GET /projects/:id/packages/conan/v1/users/authenticate 使用 conan CLI 验证用户
None   GET /projects/:id/packages/conan/v1/users/check_credentials 检查 conan CLI 用户凭证是否有效
None   GET /projects/:id/packages/conan/v2/conans/search 搜索软件包
None   GET /projects/:id/packages/conan/v2/users/check_credentials 检查 conan CLI 用户凭证是否有效
None   GET /projects/:id/registry/repositories/:repository_id/tags/:tag_name 获取关于仓库标签的详细信息
None   GET /projects/:id/registry/repositories/:repository_id/tags 列出仓库标签
None   GET /projects/:id/registry/repositories 列出项目中的容器仓库
None   POST /internal/dast/site_validations/:id/transition 将 DAST 站点验证转换为新状态。
Packages: Read and write ADMIN_PACKAGES DELETE /groups/:id/-/packages/npm/-/package/*package_name/dist-tags/:tag 删除指定标签
Packages: Read and write ADMIN_PACKAGES DELETE /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel 删除软件包
Packages: Read and write ADMIN_PACKAGES DELETE /packages/npm/-/package/*package_name/dist-tags/:tag 删除指定标签
Packages: Read and write ADMIN_PACKAGES DELETE /projects/:id/packages/:package_id/package_files/:package_file_id 删除软件包文件
Packages: Read and write ADMIN_PACKAGES DELETE /projects/:id/packages/:package_id 删除项目软件包
Packages: Read and write ADMIN_PACKAGES DELETE /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel 删除软件包
Packages: Read and write ADMIN_PACKAGES DELETE /projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag 删除指定标签
Packages: Read and write ADMIN_PACKAGES POST /projects/:id/packages/composer Composer 软件包注册端点
Packages: Read and write ADMIN_PACKAGES POST /projects/:id/packages/pypi/authorize 授权工作马上传 PyPi 软件包
Packages: Read and write ADMIN_PACKAGES POST /projects/:id/packages/pypi PyPi 软件包上传端点
Packages: Read and write ADMIN_PACKAGES PUT /groups/:id/-/packages/npm/-/package/*package_name/dist-tags/:tag 为给定 NPM 软件包和版本创建或更新指定标签
Packages: Read and write ADMIN_PACKAGES PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name/authorize 工作马授权 conan 配方文件
Packages: Read and write ADMIN_PACKAGES PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name 上传配方软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name/authorize 工作马授权 conan 软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name 上传软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /packages/npm/-/package/*package_name/dist-tags/:tag 为给定 NPM 软件包和版本创建或更新指定标签
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name/authorize 工作马授权 conan 配方文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name 上传配方软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name/authorize 工作马授权 conan 软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name 上传软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name/authorize 工作马授权 conan 配方文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name 上传配方软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision/files/:file_name/authorize 工作马授权 conan 软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:conan_package_reference/revisions/:package_revision/files/:file_name 上传软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/generic/:package_name/*package_version/(*path/):file_name/authorize 工作马授权通用软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/generic/:package_name/*package_version/(*path/):file_name 上传软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/maven/*path/:file_name/authorize 工作马授权 maven 软件包文件上传
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/maven/*path/:file_name 上传 maven 软件包文件
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag 为给定 NPM 软件包和版本创建或更新指定标签
Packages: Read and write ADMIN_PACKAGES PUT /projects/:id/packages/npm/:package_name 创建或弃用 NPM 软件包
Packages: Read READ_PACKAGES GET /groups/:id/-/packages/maven/*path/:file_name 在群组级别下载 maven 软件包文件
Packages: Read READ_PACKAGES GET /groups/:id/-/packages/npm/-/package/*package_name/dist-tags 获取给定 NPM 软件包的所有标签
Packages: Read READ_PACKAGES GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/digest 配方摘要
Packages: Read READ_PACKAGES GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/download_urls 配方下载链接
Packages: Read READ_PACKAGES GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/digest 软件包摘要
Packages: Read READ_PACKAGES GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls 软件包下载链接
Packages: Read READ_PACKAGES GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference 软件包快照
Packages: Read READ_PACKAGES GET /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel 配方快照
Packages: Read READ_PACKAGES GET /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name 下载配方文件
Packages: Read READ_PACKAGES GET /packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name 下载软件包文件
Packages: Read READ_PACKAGES GET /packages/maven/*path/:file_name 在实例级别下载 maven 软件包文件
Packages: Read READ_PACKAGES GET /packages/npm/-/package/*package_name/dist-tags 获取给定 NPM 软件包的所有标签
Packages: Read READ_PACKAGES GET /projects/:id/packages/:package_id/package_files 列出软件包文件
Packages: Read READ_PACKAGES GET /projects/:id/packages/:package_id 获取单个项目软件包
Packages: Read READ_PACKAGES GET /projects/:id/packages/composer/archives/*package_name Composer 软件包端点用于下载软件包归档
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/digest 配方摘要
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/download_urls 配方下载链接
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/digest 软件包摘要
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls 软件包下载链接
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference 软件包快照
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel 配方快照
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/export/:file_name 下载配方文件
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v1/files/:package_name/:package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name 下载软件包文件
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/latest 获取最新修订版
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name 下载配方文件
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files 列出配方文件
Packages: Read READ_PACKAGES GET /projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions 获取修订列表
Packages: Read READ_PACKAGES GET /projects/:id/packages/generic/:package_name/*package_version/(*path/):file_name 下载软件包文件
Packages: Read READ_PACKAGES GET /projects/:id/packages/go/*module_name/@v/:module_version.info 版本元数据
Packages: Read READ_PACKAGES GET /projects/:id/packages/go/*module_name/@v/:module_version.mod 下载模块文件
Packages: Read READ_PACKAGES GET /projects/:id/packages/go/*module_name/@v/:module_version.zip 下载模块源代码
Packages: Read READ_PACKAGES GET /projects/:id/packages/go/*module_name/@v/list 列表
Packages: Read READ_PACKAGES GET /projects/:id/packages/maven/*path/:file_name 在项目级别下载 maven 软件包文件
Packages: Read READ_PACKAGES GET /projects/:id/packages/npm/*package_name/-/*file_name 下载 NPM 压缩包
Packages: Read READ_PACKAGES GET /projects/:id/packages/npm/*package_name NPM 注册表元数据端点
Packages: Read READ_PACKAGES GET /projects/:id/packages/npm/-/package/*package_name/dist-tags 获取给定 NPM 软件包的所有标签
Packages: Read READ_PACKAGES GET /projects/:id/packages/pypi/files/:sha256/*file_identifier PyPi 软件包下载端点
Packages: Read READ_PACKAGES GET /projects/:id/packages/pypi/simple/*package_name PyPi 简单项目软件包端点
Packages: Read READ_PACKAGES GET /projects/:id/packages/pypi/simple PyPi 简单项目索引端点
Packages: Read READ_PACKAGES GET /projects/:id/packages 获取项目软件包列表
Packages: Read READ_PACKAGES POST /groups/:id/-/packages/npm/-/npm/v1/security/advisories/bulk NPM 注册表批量咨询端点
Packages: Read READ_PACKAGES POST /groups/:id/-/packages/npm/-/npm/v1/security/audits/quick NPM 注册表快速审计端点
Packages: Read READ_PACKAGES POST /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls 软件包上传链接
Packages: Read READ_PACKAGES POST /packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/upload_urls 配方上传链接
Packages: Read READ_PACKAGES POST /packages/npm/-/npm/v1/security/advisories/bulk NPM 注册表批量咨询端点
Packages: Read READ_PACKAGES POST /packages/npm/-/npm/v1/security/audits/quick NPM 注册表快速审计端点
Packages: Read READ_PACKAGES POST /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls 软件包上传链接
Packages: Read READ_PACKAGES POST /projects/:id/packages/conan/v1/conans/:package_name/:package_version/:package_username/:package_channel/upload_urls 配方上传链接
Packages: Read READ_PACKAGES POST /projects/:id/packages/npm/-/npm/v1/security/advisories/bulk NPM 注册表批量咨询端点
Packages: Read READ_PACKAGES POST /projects/:id/packages/npm/-/npm/v1/security/audits/quick NPM 注册表快速审计端点
Pipelines: Read and write ADMIN_PIPELINES PUT /projects/:id/pipelines/:pipeline_id/metadata 更新流水线元数据
Pipelines: Read READ_PIPELINES GET /projects/:id/packages/:package_id/pipelines 获取单个项目软件包的流水线
Releases: Read and write ADMIN_RELEASES DELETE /projects/:id/releases/:tag_name/assets/links/:link_id 删除发布链接
Releases: Read and write ADMIN_RELEASES DELETE /projects/:id/releases/:tag_name 删除发布
Releases: Read and write ADMIN_RELEASES POST /projects/:id/catalog/publish 将新组件项目发布为版本到 CI/CD 目录
Releases: Read and write ADMIN_RELEASES POST /projects/:id/releases/:tag_name/assets/links 创建发布链接
Releases: Read and write ADMIN_RELEASES POST /projects/:id/releases/:tag_name/evidence 收集发布证据
Releases: Read and write ADMIN_RELEASES POST /projects/:id/releases 创建发布
Releases: Read and write ADMIN_RELEASES PUT /projects/:id/releases/:tag_name/assets/links/:link_id 更新发布链接
Releases: Read and write ADMIN_RELEASES PUT /projects/:id/releases/:tag_name 更新发布
Releases: Read READ_RELEASES GET /projects/:id/releases/:tag_name/assets/links/:link_id 获取发布链接
Releases: Read READ_RELEASES GET /projects/:id/releases/:tag_name/assets/links 列出发布链接
Releases: Read READ_RELEASES GET /projects/:id/releases/:tag_name/downloads/*direct_asset_path 下载项目发布资产文件
Releases: Read READ_RELEASES GET /projects/:id/releases/:tag_name 按标签名称获取发布
Releases: Read READ_RELEASES GET /projects/:id/releases/permalink/latest(/)(*suffix_path) 获取最新项目发布
Releases: Read READ_RELEASES GET /projects/:id/releases 列出发布
Releases: Read READ_RELEASES GET /projects/:id/repository/changelog 生成发布的变更日志部分并返回
Secure files: Read and write ADMIN_SECURE_FILES DELETE /projects/:id/secure_files/:secure_file_id 删除密钥文件
Secure files: Read and write ADMIN_SECURE_FILES POST /projects/:id/secure_files 创建密钥文件
Secure files: Read READ_SECURE_FILES GET /projects/:id/secure_files/:secure_file_id/download 下载密钥文件
Secure files: Read READ_SECURE_FILES GET /projects/:id/secure_files/:secure_file_id 获取项目中特定密钥文件的详细信息
Secure files: Read READ_SECURE_FILES GET /projects/:id/secure_files 获取项目中的密钥文件列表
Terraform state: Read and write ADMIN_TERRAFORM_STATE DELETE /projects/:id/terraform/state/:name/lock 解锁特定名称的 Terraform 状态
Terraform state: Read and write ADMIN_TERRAFORM_STATE DELETE /projects/:id/terraform/state/:name/versions/:serial 删除 Terraform 状态版本
Terraform state: Read and write ADMIN_TERRAFORM_STATE DELETE /projects/:id/terraform/state/:name 删除特定名称的 Terraform 状态
Terraform state: Read and write ADMIN_TERRAFORM_STATE POST /projects/:id/terraform/state/:name/lock 锁定特定名称的 Terraform 状态
Terraform state: Read and write ADMIN_TERRAFORM_STATE POST /projects/:id/terraform/state/:name 添加新的 Terraform 状态或更新现有状态
Terraform state: Read READ_TERRAFORM_STATE GET /projects/:id/terraform/state/:name/versions/:serial 获取 Terraform 状态版本
Terraform state: Read READ_TERRAFORM_STATE GET /projects/:id/terraform/state/:name 按名称获取 Terraform 状态