public @CheckForNull SCM getTypicalSCM() { SCM typical = null; for (SCM scm : getSCMs()) { if (typical == null) { typical = scm; } else if (typical.getDescriptor() != scm.getDescriptor()) { return null; } } return typical; }
public static List<BitbucketBuildStatusResource> createBuildStatusResources(final Run<?, ?> build) throws Exception { Job<?, ?> project = build.getParent(); List<BitbucketBuildStatusResource> buildStatusResources = new ArrayList<BitbucketBuildStatusResource>(); if (project instanceof WorkflowJob) { Collection<? extends SCM> scms = ((WorkflowJob)project).getSCMs(); for (SCM scm : scms) { buildStatusResources.addAll(createBuildStatusResources(scm, build)); } } else if (project instanceof AbstractProject) { SCM scm = ((AbstractProject)project).getScm(); buildStatusResources = createBuildStatusResources(scm, build); } return buildStatusResources; }
private static SCM getScm(final Run<?, ?> run) { Job<?, ?> job = run.getParent(); if (job instanceof WorkflowJob) { Collection<? extends SCM> scms = ((WorkflowJob) job).getSCMs(); if (!scms.isEmpty()) { return scms.iterator().next(); // TODO: what should we do if more than one SCM has been used } } else if (run instanceof AbstractBuild) { AbstractProject<?, ?> project = ((AbstractBuild) run).getProject(); if (project.getScm() != null) { return project.getScm(); } SCM scm = project.getRootProject().getScm(); if (scm != null) { return scm; } } return new NullSCM(); }
assertTrue(artifacts.child("main/file2").isFile()); assertTrue(artifacts.child("other/otherfile2").isFile()); Iterator<? extends SCM> scms = p.getSCMs().iterator(); assertTrue(scms.hasNext()); assertEquals(sampleRepo.trunkUrl().replaceFirst("/$", ""), ((SubversionSCM) scms.next()).getLocations()[0].getURL());
assertTrue(artifacts.child("other/otherfile2").isFile()); r.assertLogContains("unversioned did not exist", b); Iterator<? extends SCM> scms = p.getSCMs().iterator(); assertTrue(scms.hasNext()); assertEquals(sampleRepo.toURI().toString(), ((MercurialSCM) scms.next()).getSource());