首页 > 解决方案 > 通过 groovy 脚本在 Jenkins 中编辑用户

问题描述

我想知道我是否可以在 Jenkins 用户中更改密码、用户名、电子邮件。因为我可以像这样通过 groovy 脚本创建用户:

import hudson.model.*

def user = instance.securityRealm.createAccount(userId, password)
user.addProperty(new Mailer.UserProperty(email));
instance.save()

Jenkins 界面允许我管理用户凭据,但允许更改密码/电子邮件/用户名的脚本将非常有帮助。我没有找到例子。

我用这样的脚本尝试了很多次,但它没有用

import hudson.model.*

User user = User.getAll().get(1)
user.setProperty(newPassword)

标签: jenkinsgroovyuser-management

解决方案


这是一个有效的简单代码:

import jenkins.model.*
import hudson.security.*
import hudson.tasks.Mailer

def env = System.getenv()

def jenkins = Jenkins.getInstance()
if(!(jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm))
    jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(false))

if(!(jenkins.getAuthorizationStrategy() instanceof GlobalMatrixAuthorizationStrategy))
    jenkins.setAuthorizationStrategy(new GlobalMatrixAuthorizationStrategy())

// update admin Jenkins user account
def user = jenkins.getSecurityRealm().getUser('admin')
email= 'jenkins-admin@gmail.com'
user.addProperty(new Mailer.UserProperty(email));

推荐阅读