public DynamicProject createNewProject(GHRepository githubRepository) { try { new GithubRepositoryService(githubRepository).linkProjectToCi(); OrganizationContainer folder = this.organizationRepository.getOrCreateContainer(githubRepository.getOwner().getLogin()); String projectName = githubRepository.getName(); DynamicProject project = folder.createProject(DynamicProject.class, projectName); project.setDescription(format("<a href=\"%s\">%s</a>", githubRepository.getUrl(), githubRepository.getUrl())); project.setConcurrentBuild(true); if (StringUtils.isNotEmpty(SetupConfig.get().getLabel())) { project.setAssignedLabel(Jenkins.getInstance().getLabel(SetupConfig.get().getLabel())); } project.addProperty(new ParametersDefinitionProperty(new StringParameterDefinition("BRANCH", "master"))); project.addProperty(new GithubRepoProperty(githubRepository.getUrl())); project.getPublishersList().add(new DotCiNotifier()); project.save(); folder.addItem(project); folder.save(); return project; } catch (IOException e) { throw new RuntimeException(e); } }
@Test public void should_allow_permission_on_github_org_only_if_member() throws Exception { OrganizationContainer organizationContainer = Mockito.mock(OrganizationContainer.class); Mockito.when(organizationContainer.getName()).thenReturn("chairman-meow"); DotCiACL acl = new DotCiACL(organizationContainer, "suryagaddipati", false); GithubAuthenticationToken githubAuthentication = getGithubAuthentication("chairman-meow"); Assert.assertTrue(acl.hasPermission(githubAuthentication, Jenkins.READ)); }
public Iterable<DynamicProject> getProjectsForOrg(final OrganizationContainer organizationContainer) { return find(new BasicDBObject("parent", organizationContainer.getId()), castToDynamicProject(getTransformer(organizationContainer))); }
public boolean projectExists(GHRepository repository) throws IOException { OrganizationContainer folder = this.organizationRepository.getOrganizationContainer(repository.getOwner().getLogin()); return folder != null && folder.getItem(repository.getName()) != null; }