Python给Jenkins Job批量修改权限

开发老是不自觉的更新UAT的Job,对测试造成一定的影响。查看了一下,Jenkins上的用户是通过第三方系统引入的,没有更合理的分组,用Role Based Strategy不能够实现对特定Job的权限控制。

采用项目矩阵授权策略来实现:目前的权限不受影响,只有UAT View下的Job只有测试能访问执行。

  1. 全局配置,设置Admin和Authenticated User权限

  2. 项目设置,选择不继承权限策略,并对特定用户加进来设置相应权限

这种方式,View下有很多个Job,每来一个人都要一个一个加,可以利用代码方式批量的来添加用户权限:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
s = jenkins.Jenkins(url=URL, username=USERNAME, password=PASSWORD)

jobs = s.get_jobs(view_name=VIEW_NAME)

for job in jobs:
name = job['name']
config = s.get_job_config(name)

content = f'''</permission>
<permission>hudson.model.Item.Build:{USER}</permission>
<permission>hudson.model.Item.Cancel:{USER}</permission>
<permission>hudson.model.Item.Configure:{USER}</permission>
<permission>hudson.model.Item.Delete:{USER}</permission>
<permission>hudson.model.Item.Move:{USER}</permission>
<permission>hudson.model.Item.Read:{USER}</permission>
<permission>hudson.model.Item.Workspace:{USER}</permission>
'''


new = config.replace('</permission>', content, 1)

s.reconfig_job(name, new)
唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!