@Restricted(DoNotUse.class) @DataBoundSetter public void setBrowser(GitRepositoryBrowser browser) { List<SCMSourceTrait> traits = new ArrayList<>(this.traits); for (Iterator<SCMSourceTrait> iterator = traits.iterator(); iterator.hasNext(); ) { if (iterator.next() instanceof GitBrowserSCMSourceTrait) { iterator.remove(); } } if (browser != null) { traits.add(new GitBrowserSCMSourceTrait(browser)); } setTraits(traits); }
@Restricted(DoNotUse.class) @DataBoundSetter public void setGitTool(String gitTool) { List<SCMSourceTrait> traits = new ArrayList<>(this.traits); gitTool = Util.fixEmptyAndTrim(gitTool); for (Iterator<SCMSourceTrait> iterator = traits.iterator(); iterator.hasNext(); ) { if (iterator.next() instanceof GitToolSCMSourceTrait) { iterator.remove(); } } if (gitTool != null) { traits.add(new GitToolSCMSourceTrait(gitTool)); } setTraits(traits); }
@Deprecated @Restricted(NoExternalUse.class) @RestrictedSince("3.4.0") public GitSCMSource(String id, String remote, String credentialsId, String remoteName, String rawRefSpecs, String includes, String excludes, boolean ignoreOnPushNotifications) { super(id); this.remote = remote; this.credentialsId = credentialsId; List<SCMSourceTrait> traits = new ArrayList<>(); traits.add(new BranchDiscoveryTrait()); if (!DEFAULT_INCLUDES.equals(includes) || !DEFAULT_EXCLUDES.equals(excludes)) { traits.add(new WildcardSCMHeadFilterTrait(includes, excludes)); } if (!DEFAULT_REMOTE_NAME.equals(remoteName) && StringUtils.isNotBlank(remoteName)) { traits.add(new RemoteNameSCMSourceTrait(remoteName)); } if (ignoreOnPushNotifications) { traits.add(new IgnoreOnPushNotificationTrait()); } RefSpecsSCMSourceTrait trait = asRefSpecsSCMSourceTrait(rawRefSpecs, remoteName); if (trait != null) { traits.add(trait); } setTraits(traits); }
traits.add(trait); setTraits(traits);
@Override public void evaluate() throws Throwable { sampleRepo.init(); sampleRepo.git("checkout", "-b", "dev/main"); String script = "echo \"branch=${env.BRANCH_NAME}\"\n" + "node {\n" + " checkout scm\n" + " echo \"workspace=${pwd().replaceFirst('.+dev', 'dev')}\"\n" + "}"; sampleRepo.write("Jenkinsfile", script); sampleRepo.git("add", "Jenkinsfile"); sampleRepo.git("commit", "--all", "--message=flow"); WorkflowMultiBranchProject mp = story.j.jenkins.createProject(WorkflowMultiBranchProject.class, "p"); GitSCMSource source = new GitSCMSource(sampleRepo.toString()); source.setTraits(Collections.singletonList(new BranchDiscoveryTrait())); mp.getSourcesList().add(new BranchSource(source)); WorkflowJob p = scheduleAndFindBranchProject(mp, "dev%2Fmain"); assertEquals(1, mp.getItems().size()); story.j.waitUntilNoActivity(); WorkflowRun b1 = p.getLastBuild(); assertEquals(1, b1.getNumber()); story.j.assertLogContains("branch=dev/main", b1); story.j.assertLogContains("workspace=dev_main", b1); verifyProject(p); sampleRepo.write("Jenkinsfile", script.replace("branch=", "Branch=")); } });