Jenkins 工作扩展点 API
Jenkins Extension Point for Job API
作业 REST API 有扩展点吗?
我想在调用 http://server/jenkins/job/job_name/job_number/api/json 时添加一些信息。
有什么提示吗?
好的,经过大量研究和尝试,我找到了答案。
要在 Job/Build REST API 中公开其他数据,TransientActionFactory (http://javadoc.jenkins-ci.org/jenkins/model/TransientActionFactory.html) needs to be extended using the AbstractBuild (http://javadoc.jenkins-ci.org/hudson/model/AbstractBuild.html) 会在键入时公开。
你会得到这样的东西:
import hudson.Extension;
import hudson.model.AbstractBuild;
import hudson.model.Action;
import java.util.Collection;
import java.util.Collections;
import jenkins.model.TransientActionFactory;
@Extension
public class MyTransientActionFactory extends TransientActionFactory<AbstractBuild> {
@Override
public Class<AbstractBuild> type() {
return AbstractBuild.class;
}
@Override
public Collection<? extends Action> createFor(AbstractBuild target) {
return Collections.singleton(new MyAction(target));
}
}
这会将 MyAction 添加到 REST 中显示的 AbstractBuild 操作列表中 API。
作业 REST API 有扩展点吗?
我想在调用 http://server/jenkins/job/job_name/job_number/api/json 时添加一些信息。
有什么提示吗?
好的,经过大量研究和尝试,我找到了答案。
要在 Job/Build REST API 中公开其他数据,TransientActionFactory (http://javadoc.jenkins-ci.org/jenkins/model/TransientActionFactory.html) needs to be extended using the AbstractBuild (http://javadoc.jenkins-ci.org/hudson/model/AbstractBuild.html) 会在键入时公开。
你会得到这样的东西:
import hudson.Extension;
import hudson.model.AbstractBuild;
import hudson.model.Action;
import java.util.Collection;
import java.util.Collections;
import jenkins.model.TransientActionFactory;
@Extension
public class MyTransientActionFactory extends TransientActionFactory<AbstractBuild> {
@Override
public Class<AbstractBuild> type() {
return AbstractBuild.class;
}
@Override
public Collection<? extends Action> createFor(AbstractBuild target) {
return Collections.singleton(new MyAction(target));
}
}
这会将 MyAction 添加到 REST 中显示的 AbstractBuild 操作列表中 API。