Jenkins工作API扩展点

时间:2015-02-06 13:24:48

标签: java api plugins jenkins

Job REST API是否有扩展点?

我希望在调用http://server/jenkins/job/job_name/job_number/api/json时添加一些信息。

任何提示?

1 个答案:

答案 0 :(得分:1)

好的,经过大量的研究和尝试后,我找到了答案。

要在Job / Build REST API中公开其他数据,需要在键入时使用AbstractBuild(http://javadoc.jenkins-ci.org/jenkins/model/TransientActionFactory.html)扩展TransientActionFactory(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 API中显示的AbstractBuild操作列表中。