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。