Python 在Jenkins REST API中扩展用户模型属性
在查询URL时,我试图使用Jenkins REST API提取用户的最后登录详细信息https://jenkinsurl/user/someusername/api/json 我收到的回复与下面显示的类似Python 在Jenkins REST API中扩展用户模型属性,python,api,rest,jenkins,Python,Api,Rest,Jenkins,在查询URL时,我试图使用Jenkins REST API提取用户的最后登录详细信息https://jenkinsurl/user/someusername/api/json 我收到的回复与下面显示的类似 { "_class" : "hudson.model.User", "absoluteUrl" : "https://jenkinsurl/user/someusername",
{
"_class" : "hudson.model.User",
"absoluteUrl" : "https://jenkinsurl/user/someusername",
"description" : null,
"fullName" : "someusername",
"id" : "someusernameid",
"property" : [
{
"_class" : "someProperty1"
},
{
"_class" : "someProperty2"
},
{
"_class" : "org.jenkinsci.plugins.saml.user.LoginDetailsProperty"
},
]
}
现在,我要查找的详细信息位于LoginDetailsProperty下,可以在中找到。当我打开user/someusername/configure修改用户详细信息或创建访问令牌时,我已经看到Jenkins UI中使用了详细信息。如何使用REST API扩展LoginDetailsProperty并提取特定用户的lastLoginTimestamp值?我认为您需要扩展插件代码,以便导出时间戳,如下所示:
import org.kohsuke.stapler.export.Exported;
[...]
@Exported
public long getLastLoginTimestamp() {
[...]
这是否意味着我需要自己构建和打包插件,然后将其重新安装到我的Jenkins环境中?是的,这是正确的。我认为唯一的另一种选择是完全跳过JSON api,用Groovy脚本提取信息。嗯……有道理。我以前从未使用过Groovy,并试图不走这条路,但我想这是解决问题的更好方法。有什么建议去哪里寻求帮助吗?嗯,最后修改插件可能会更容易。重新构建它很容易,如果您将修改提交给官方回购协议,您将拥有一个永久解决方案,并且您为开发做出了贡献。如果您想使用Groovy,那么需要深入研究对象模型,以创建生成所需信息的脚本,然后使用RESTAPI运行该Groovy。如果您希望将来再次使用Groovy/Jenkins组合,我只会走这条路。