下面列出了hudson.model.CauseAction#getCauses ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static Run getUpstreamBuild(@Nonnull Run build) {
CauseAction causeAction = build.getAction(CauseAction.class);
if (causeAction == null) {
return null;
}
for (Cause cause : causeAction.getCauses()) {
if (cause instanceof Cause.UpstreamCause) {
Cause.UpstreamCause upstreamCause = (Cause.UpstreamCause) cause;
Job upstreamJob =
Jenkins.getInstance().getItemByFullName(upstreamCause.getUpstreamProject(), Job.class);
// We want to ignore rebuilds, rebuilds have the same parent as
// original build, see BuildCache#updateCache().
if (upstreamJob == null || build.getParent() == upstreamJob) {
continue;
}
return upstreamJob.getBuildByNumber(upstreamCause.getUpstreamBuild());
}
}
return null;
}
@Override
public Object encode(final Object value, final MappedField optionalExtraInfo) {
if (value == null) return null;
final CauseAction action = (CauseAction) value;
final List causes = new BasicDBList();
for (final Object obj : action.getCauses()) {
causes.add(getMapper().toDBObject(obj));
}
return BasicDBObjectBuilder.start("causes", causes).add("className", CauseAction.class.getName()).get();
}