用户角色管理

自 Travis CI 企业版 3.1.0 起可用

Travis CI 引入了新的用户角色管理功能,以提高安全性并增强功能。此功能提供更细化的访问控制管理,添加更严格的访问权限管理,同时继续保护 CI/CD 构建作业日志中可能存在的关键信息。

此功能允许 Travis CI 管理员对用户权限执行许可限制,将其限制为工作所需的最少功能(按需)以保护特定的构建作业日志。

启用用户角色管理 #

从 Travis CI 企业版管理控制台中,打开 Config 菜单,展开左侧的 高级设置 菜单,然后单击 用户角色管理

Member Management menu

要启用此设置,请选择 已启用 选项并保存设置。

Member Management option

Travis CI 角色 #

新的 Travis CI 用户是通过“使用...登录”功能创建的,将第三方应用程序(GitHub、Assembla、BitBucket 或 GitLab)链接到 Travis CI。有关更多信息,请参见 入门

在 Travis CI 中,用户可以访问 Travis CI 存储库和帐户功能,以及以下不同类型的用户角色。

  • 管理员
    • 存储库:管理存储库设置,触发构建,并可以使用围绕构建的各种功能。
    • 帐户:能够在 Travis CI 和结算中激活存储库。
  • 推送(写入)用户
    • 存储库:触发构建并可以使用围绕构建的各种功能。
    • 帐户:能够请求在 Travis CI 中激活存储库。
  • 拉取(读取)用户
    • 存储库:无法触发构建,并且围绕构建的功能有限。
    • 帐户:能够请求在 Travis CI 中激活存储库。
  • 所有者:所有者是所拥有存储库和帐户的管理员用户。所有者可以是用户或组织。

此功能授权管理员用户根据自己的喜好处理普通用户。普通用户仍然必须使用版本控制系统 (VCS) 登录。因此,用户管理功能允许管理员用户为具有访问 Travis CI 权限的用户识别普通用户角色。

成员管理选项卡 #

成员管理选项卡显示一个包含用户及其相应角色的列表。

Travis CI 管理员用户会看到一个用户列表,并可以更改或分配普通用户的角色。管理员用户可以使用“同步组织”或“同步用户”来更新用户列表。

以下是每个用户可以关联多个角色的可用字段。

  • 姓名:显示用户的姓名。
  • 登录:显示用户的登录电子邮件。
  • 旧角色:显示所选用户的先前授权权限。
  • 新角色:显示分配给所选用户的角色或角色数量。允许管理员用户为所选用户选择或更改角色。
    • 全部:启用所有四个选项。
  • 管理员:具有所有帐户和存储库权限。
  • 帐户设置编辑器:访问创建和编辑帐户设置的权限。
  • 帐户设置管理员:管理帐户的无限权限,并且可以管理帐户计划、账单和联系人。
  • 帐户计划查看器:可以查看、使用和查看帐户计划。
  • 可以构建:选中此复选框以授权所选用户进行构建。

Member Management Tab

用户管理选项卡 #

用户管理选项卡列出了具有访问存储库权限的用户,并且 Travis CI 管理员用户可以分配存储库连接角色。

以下是每个用户可以关联多个角色的可用字段。

  • 姓名:显示用户的姓名。
  • 登录:显示用户的登录电子邮件。
  • 新角色:显示分配给所选用户的角色或角色数量。允许管理员用户为所选用户选择或更改角色。

User Managemenet Tab

下表显示了可用角色及其当前权限。

角色 权限(技术) 权限说明
Repository.Settings.Editor repository.settings.createrepository.settings.updaterepository.settings.delete 可以完全管理存储库设置
Repository.Settings.Viewer repository.settings.read 可以读取存储库设置
Repository.Builds.Restarter repository.build.restart 可以重启存储库构建
Repository.Builds.Triggerer repository.build.createrepository.build.cancel 可以创建和取消存储库构建
Repository.Builds.Cancel repository.build.cancel 可以取消存储库构建
Repository.Logs.Viewer repository.log.view 可以查看存储库日志
Repository.Logs.Admin repository.log.deleterepository.log.view 可以删除和查看存储库日志
Repository.Builds.Debugger repository.build.debug 可以调试存储库构建
Repository.Cache.Editor repository.cache.deleterepository.cache.view 可以删除和查看存储库缓存
Repository.Cache.Viewer repository.cache.view 可以查看存储库缓存
Repository.Collaborator repository.build.createrepository.build.cancelrepository.build.restartrepository.log.deleterepository.log.viewrepository.build.debugrepository.cache.view 可以完全管理构建和日志。可以查看存储库缓存
Repository.Admin repository.settings.createrepository.settings.updaterepository.settings.deleterepository.build.createrepository.build.cancelrepository.build.restartrepository.log.deleterepository.log.view repository.build.debugrepository.cache.deleterepository.cache.viewrepository.cache.view 具有管理存储库的无限权限。他可以完全管理存储库以及构建、日志和缓存。
Repository.Reader repository.log.viewrepository.cache.view 可以查看存储库日志和缓存
Account.Settings.Editor accounts.settings.editaccount.settings.create 可以创建和编辑帐户设置
Account.Settings.Admin account.settings.deleteaccounts.settings.editaccount.settings.createaccount.plan.createaccount.plan.invoicesaccount.plan.usageaccount.billing.viewaccount.contact.viewaccount.billing.updateaccount.contact.update 具有管理帐户的无限权限。可以完全管理帐户计划、账单和联系人
Account.Plan.Viewer account.plan.invoicesaccount.plan.usageaccount.plan.view 可以创建发票、使用情况并查看帐户计划
Account.Plan.Editor account.plan.createaccount.plan.invoicesaccount.plan.usage 可以完全管理帐户计划
Account.Billing.Editor account.billing.viewaccount.contact.viewaccount.billing.updateaccount.contact.update 可以查看和更新帐户账单和联系人
Account.Billing.Viewer account.billing.viewaccount.contact.view 可以查看帐户账单和联系人
Account.Admin 所有权限(包括存储库对象权限) 具有所有帐户和存储库权限

Travis 管理员和扩展的 VCS 同步逻辑 #

所有 Travis CI 管理员用户都可以访问额外的存储库和帐户(个人或组织)设置屏幕,他们可以在其中配置分配给单个用户的新的角色和权限,无论是帐户级别还是存储库级别。

Travis CI 中实施的新权限系统会在每次与版本控制系统 (VCS) 同步后更新修改后的角色和权限。新权限系统的目标是升级管理员用户对这些设置所做的任何修改,以反映单个用户的角色和权限。

新权限系统的流程如下

  1. 与版本控制系统同步。每天或按需发生。
  2. 新系统映射会根据 VSC 提供程序的现有角色分配正确的 Travis CI 角色。
  3. 新角色和权限系统在数据库中记录新的角色和权限更新,并检查用户设置的任何修改。
  4. 新角色和权限系统会为每个现有系统用户分配在 VCS 同步期间从 VSC 访问权限获得的默认设置集(角色和权限)。
  5. 新角色和权限服务创建或更新新的角色和权限。

注意:如果出现错误,未处理的请求将排队以重新尝试与 VCS 同步,并记录错误日志。

注意:暂停或恢复用户的存储库访问权限会删除用户的构建触发权限,并分配相应的存储库读取器角色。

注意:暂停或恢复用户的帐户访问权限会将用户从所有管理员和编辑角色中移除,只允许用户成为计划查看器和结算查看器。

当现有的 Travis CI 用户登录时,用户的当前成员资格和权限将与新的权限服务进行检查,以查看是否有任何角色或权限修改。

下表显示了针对用户帐户和存储库的每个特定设置修改执行的操作。

权限修改 执行的操作
用户权限创建 新的权限服务会创建用户并添加新的权限。
用户权限未被修改 新的权限服务不会修改权限。
用户权限已扩展 新的权限服务会更新权限,以匹配从版本控制系统同步获得的权限。
用户权限已限制 新的权限服务
用户从存储库中移除访问权限 用户存储库访问权限的所有 TCI 角色和权限都会被移除。如果移除的用户拥有个人帐户并邀请合作者加入其个人存储库,Travis CI 会直接将合作者的访问权限映射到所有者的 Travis CI 存储库。
用户从帐户中移除访问权限 在用户 Travis CI 帐户的上下文中,所有 TCI 角色和权限都会被移除。

角色和权限 #

下表显示了存储库和帐户的新的角色和权限。

角色 #

以前的存储库角色 新角色 权限
管理员用户 Repository.Settings.Editor repository.settings.create, repository.settings.update, repository.settings.delete, repository.settings.read
管理员用户 Repository.Settings.Viewer repository.settings.read
管理员用户,推送用户 Repository.Builds.Restarter repository.build.restart
管理员用户,推送用户 Repository.Builds.Triggerer repository.build.createrepository.build.cancel
管理员用户,推送用户 Repository.Builds.Cancel repository.build.cancel
管理员用户,推送用户,拉取用户,匿名用户(针对公共仓库) Repository.Logs.Viewer repository.log.view
管理员用户 Repository.Logs.Admin repository.log.deleterepository.log.view
管理员用户,推送用户 Repository.Builds.Debugger repository.build.debug
管理员用户 Repository.Cache.Editor repository.cache.deleterepository.cache.view
管理员用户,推送用户,拉取用户 Repository.Cache.Viewer repository.cache.view
推送用户 Repository.Collaborator repository.build.createrepository.build.cancelrepository.build.restartrepository.log.deleterepository.log.viewrepository.build.debugrepository.cache.view
管理员用户 Repository.Admin repository.settings.create, repository.settings.update, repository.settings.delete, repository.build.create, repository.build.cancel, repository.build.restart, repository.log.delete, repository.log.view, repository.build.debug, repository.cache.delete, repository.cache.view, repository.cache.view, repository.scan.view
拉取用户 Repository.Reader repository.log.view, repository.cache.view, repository.build.restart
拉取用户 Repository.State.Editor repository.state.update

账户 #

之前的账户角色 新角色 权限
管理员 Account.Settings.Editor account.settings.edit, account.settings.create
管理员 Account.Settings.Admin account.settings.delete, accounts.settings.edit, account.settings.create, account.plan.create, account.plan.invoices, account.plan.usage, account.billing.view, account.billing.update, account.contact.view, account.contact.update
管理员,推送用户 Account.Plan.Viewer account.plan.invoicesaccount.plan.usageaccount.plan.view
管理员 Account.Plan.Editor account.plan.createaccount.plan.invoicesaccount.plan.usage
管理员 Account.Billing.Editor account.billing.viewaccount.contact.viewaccount.billing.updateaccount.contact.update
管理员,推送用户 Account.Billing.Viewer account.billing.viewaccount.contact.view
管理员 Account.Admin 所有权限(包括账户和仓库对象权限)

以下表格展示了从各个版本控制系统获取的 Travis CI 角色和权限。

GitHub #

下表展示了 GitHub 仓库角色。

GitHub 角色 Travis CI 角色
管理员 管理员用户
读取 拉取用户
分类 拉取用户
写入 推送用户
维护 推送用户

下表展示了 GitHub 组织角色。

GitHub 角色 Travis CI 角色
所有者 管理员用户
成员 推送用户
版主 推送用户
计费经理  
安全经理 推送用户

Assembla #

Assembla 角色 Travis CI 角色
所有者 管理员用户
成员 推送用户
观察者 读取用户

GitLab #

GitLab 角色 Travis CI 角色
所有者 管理员用户
维护者 管理员用户
开发者 推送用户
报告者 拉取用户
访客 拉取用户

Bitbucket #

Bitbucket 角色 Travis CI 角色
管理员 管理员用户
读取 拉取用户
写入 推送用户