在我谷歌代码之夏项目,我创造了全新的文件夹身份验证插件用于轻松管理对文件夹中组织的项目的权限文件夹插件。此新插件专为方便管理角色的快速权限检查而设计。该插件的1.0版本刚刚发布,可从Jenkins的更新中心下载。必威国际有限公司

这个插件的灵感来自角色策略插件并带来性能改进,使角色更加容易。开发插件以克服角色战略插件对大量角色的性能限制。与此同时,插件通过文件夹解决了Jenkins的组织项目中最流行的方式之一。必威国际有限公司该插件还有一个新的UI,未来会有更多改进。

该插件支持三种类型的角色,适用于Jenkins的不同位置。必威国际有限公司

  • 全球角色:适用于詹金斯的任何地方必威国际有限公司

  • 代理角色:限制连接到实例的多个代理的权限

  • 文件夹角色:适用于文件夹内组织的多个作业

文件夹验证插件的屏幕截图

相对于角色策略插件的性能改进

与角色策略插件不同,此插件不使用正则表达式查找匹配的项目和代理,从而提高了性能,并使管理员的生活更加轻松。为了减少需要管理的角色数量,通过文件夹角色授予文件夹的权限将继承给其所有子文件夹。这是我们用于通过单个角色访问多个项目。类似地,代理角色可以应用于多个代理并分配给多个用户。

该插件旨在在权限检查方面优于角色策略插件微观基准框架我在GSOC项目的第一阶段创建。两个插件的相同配置的基准显示,与角色策略2.13的全局角色相比,500个全局角色的权限检查最高可达934倍,这本身包含几种性能改进。将文件夹角色与角色策略的项目角色进行比较,可以在具有150个用户的实例的两个级别的深度文件夹中组织的250个项目更快地访问工作的权限检查。您可以看到基准测试和结果比较在这里.

必威国际有限公司Jenkins配置作为代码支持

该插件支持Jenkins配置为代码,因此必威国际有限公司您无需通过Web UI即可配置权限。YAML配置如下所示:

必威国际有限公司:授权策略:基于文件夹的:全球角色: -名称:“管理员”权限: -id:“hudson.model.hudson.administrate”# ...小岛屿发展中国家: -"管理"-名称:“阅读”权限: -id:“哈德逊,模型,哈德逊,读”小岛屿发展中国家: -"用户1"折叠角色: -文件夹:-“根”名称:"视图根"权限: -id:“hudson.model.Item.Read”小岛屿发展中国家: -"用户1"agentRoles: -代理人:-“代理1”名称:"代理程序1"权限: -id:“哈德逊.模型.计算机.配置”-id:“哈德逊模型计算机断开”小岛屿发展中国家: -"用户1"

支持招摇过市的RESTAPI

该插件通过Swagger.json提供RESTAPI,用于管理具有OpenAPI规范的角色昂首阔步. SwaggerHub提供多种语言的存根,可以下载并用于与插件交互。您还可以使用命令行查看一些示例请求卷曲.

SwiggerHub上API的屏幕截图
Swaggerhub上的API的另一个屏幕截图

下一步是什么

在不久的将来,我想改进用户界面,使插件更容易使用。我还想改进API、文档和更多优化,以提高插件的性能。

关于作者
阿比尤达亚·夏尔马

Abhyudaya是印度Shiv Nadar大学的计算机科学专业学生。他正在参加谷歌代码2019夏令营,以提高代码的性能角色策略插件.