diff --git a/src/main/java/org/kohsuke/github/GHCreateRepositoryBuilder.java b/src/main/java/org/kohsuke/github/GHCreateRepositoryBuilder.java index 95b57e317..43d59ea8e 100644 --- a/src/main/java/org/kohsuke/github/GHCreateRepositoryBuilder.java +++ b/src/main/java/org/kohsuke/github/GHCreateRepositoryBuilder.java @@ -13,7 +13,7 @@ import static org.kohsuke.github.Previews.BAPTISE; public class GHCreateRepositoryBuilder { private final GitHub root; protected final Requester builder; - private final String apiUrlTail; + private String apiUrlTail; GHCreateRepositoryBuilder(GitHub root, String apiUrlTail, String name) { this.root = root; @@ -22,22 +22,6 @@ public class GHCreateRepositoryBuilder { this.builder.with("name", name); } - GHCreateRepositoryBuilder(GitHub root, String apiUrlTail, String name, Boolean isTemplate) { - this.root = root; - this.apiUrlTail = apiUrlTail; - this.builder = root.createRequest(); - this.builder.with("name", name); - this.builder.with("is_template", isTemplate); - } - - GHCreateRepositoryBuilder(GitHub root, String apiUrlTail, String name, String owner) { - this.root = root; - this.apiUrlTail = apiUrlTail; - this.builder = root.createRequest(); - this.builder.with("name", name); - this.builder.with("owner", owner); - } - /** * Description for repository * @@ -218,6 +202,51 @@ public class GHCreateRepositoryBuilder { return this; } + /** + * Specifies whether the repository is a template. + * + * @param enabled + * true if enabled + * @return a builder to continue with building + */ + @Preview + @Deprecated + public GHCreateRepositoryBuilder templateRepository(boolean enabled) { + this.builder.withPreview(BAPTISE); + this.builder.with("is_template", enabled); + return this; + } + + /** + * Specifies the ownership of the repository. + * + * @param owner + * organization or personage + * @return a builder to continue with building + */ + public GHCreateRepositoryBuilder owner(String owner) { + this.builder.with("owner", owner); + return this; + } + + /** + * Create repository from template repository. + * + * @param templateOwner + * template repository owner + * @param templateRepo + * template repository + * @return a builder to continue with building + * @see GitHub API Previews + */ + @Preview + @Deprecated + public GHCreateRepositoryBuilder fromTemplateRepository(String templateOwner, String templateRepo) { + this.builder.withPreview(BAPTISE); + this.apiUrlTail = "/repos/" + templateOwner + "/" + templateRepo + "/generate"; + return this; + } + /** * Creates a repository with all the parameters. * @@ -229,15 +258,4 @@ public class GHCreateRepositoryBuilder { return builder.method("POST").withUrlPath(apiUrlTail).fetch(GHRepository.class).wrap(root); } - /** - * Creates a repository with all the parameters, and with Preview BAPTISE for template repo. - * - * @return the gh repository - * @throws IOException - * if repsitory cannot be created - */ - public GHRepository createWithTemplate() throws IOException { - return builder.method("POST").withPreview(BAPTISE).withUrlPath(apiUrlTail).fetch(GHRepository.class).wrap(root); - } - } diff --git a/src/main/java/org/kohsuke/github/GHOrganization.java b/src/main/java/org/kohsuke/github/GHOrganization.java index c04f0805b..fd9188b4b 100644 --- a/src/main/java/org/kohsuke/github/GHOrganization.java +++ b/src/main/java/org/kohsuke/github/GHOrganization.java @@ -100,50 +100,6 @@ public class GHOrganization extends GHPerson { return new GHCreateRepositoryBuilder(root, "/orgs/" + login + "/repos", name); } - /** - * Starts a builder that creates a new repository. - * - *

- * You use the returned builder to set various properties, then call {@link GHCreateRepositoryBuilder#create()} to - * finally create a repository. - * - * @param name - * the name - * @param isTemplate - * the is_template - * @return the gh create repository builder - */ - public GHCreateRepositoryBuilder createRepositoryWithParametersIsTemplate(String name, Boolean isTemplate) { - return new GHCreateRepositoryBuilder(root, "/orgs/" + login + "/repos", name, isTemplate); - } - - /** - * Starts a builder that creates a new repository. - * - *

- * You use the returned builder to set various properties, then call - * {@link GHCreateRepositoryBuilder#createWithTemplate()} to finally create a repository. - * - * @param templateOwner - * the owner of template repository - * @param templateRepo - * the template repository - * @param name - * the name of repository to be created - * @param owner - * the organization of repository to be created - * @return the gh create repository builder - */ - public GHCreateRepositoryBuilder createRepositoryWithTemplate(String templateRepo, - String templateOwner, - String name, - String owner) { - return new GHCreateRepositoryBuilder(root, - "/repos/" + templateOwner + "/" + templateRepo + "/generate", - name, - owner); - } - /** * Teams by their names. * diff --git a/src/test/java/org/kohsuke/github/GHOrganizationTest.java b/src/test/java/org/kohsuke/github/GHOrganizationTest.java index b836a9862..18a7e30e7 100644 --- a/src/test/java/org/kohsuke/github/GHOrganizationTest.java +++ b/src/test/java/org/kohsuke/github/GHOrganizationTest.java @@ -58,17 +58,17 @@ public class GHOrganizationTest extends AbstractGitHubWireMockTest { } @Test - public void testCreateRepositoryWithParametersIsTemplate() throws IOException { - cleanupRepository(GITHUB_API_TEST_ORG + '/' + GITHUB_API_TEMPLATE_TEST); + public void testCreateRepositoryWithParameterIsTemplate() throws IOException { + cleanupRepository(GITHUB_API_TEST_ORG + '/' + GITHUB_API_TEST); GHOrganization org = gitHub.getOrganization(GITHUB_API_TEST_ORG); - GHRepository repository = org.createRepositoryWithParametersIsTemplate(GITHUB_API_TEMPLATE_TEST, true) + GHRepository repository = org.createRepository(GITHUB_API_TEMPLATE_TEST) .description("a test template repository used to test kohsuke's github-api") .homepage("http://github-api.kohsuke.org/") .team(org.getTeamByName("Core Developers")) .autoInit(true) + .templateRepository(true) .create(); - Assert.assertNotNull(repository); Assert.assertNotNull(repository.getReadme()); } @@ -78,12 +78,10 @@ public class GHOrganizationTest extends AbstractGitHubWireMockTest { cleanupRepository(GITHUB_API_TEST_ORG + '/' + GITHUB_API_TEST); GHOrganization org = gitHub.getOrganization(GITHUB_API_TEST_ORG); - GHRepository repository = org - .createRepositoryWithTemplate(GITHUB_API_TEMPLATE_TEST, - GITHUB_API_TEST_ORG, - GITHUB_API_TEST, - GITHUB_API_TEST_ORG) - .createWithTemplate(); + GHRepository repository = org.createRepository(GITHUB_API_TEST) + .fromTemplateRepository(GITHUB_API_TEST_ORG, GITHUB_API_TEMPLATE_TEST) + .owner(GITHUB_API_TEST_ORG) + .create(); Assert.assertNotNull(repository); Assert.assertNotNull(repository.getReadme()); diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/orgs_hub4j-test-org-2.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/orgs_hub4j-test-org-2.json similarity index 100% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/orgs_hub4j-test-org-2.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/orgs_hub4j-test-org-2.json diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/orgs_hub4j-test-org_repos-4.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/orgs_hub4j-test-org_repos-4.json similarity index 100% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/orgs_hub4j-test-org_repos-4.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/orgs_hub4j-test-org_repos-4.json diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/orgs_hub4j-test-org_teams-3.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/orgs_hub4j-test-org_teams-3.json similarity index 100% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/orgs_hub4j-test-org_teams-3.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/orgs_hub4j-test-org_teams-3.json diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/repos_hub4j-test-org_github-api-test_readme-5.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/repos_hub4j-test-org_github-api-test_readme-5.json similarity index 100% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/repos_hub4j-test-org_github-api-test_readme-5.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/repos_hub4j-test-org_github-api-test_readme-5.json diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/user-1.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/user-1.json similarity index 100% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/__files/user-1.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/__files/user-1.json diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/orgs_hub4j-test-org-2.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/orgs_hub4j-test-org-2.json similarity index 100% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/orgs_hub4j-test-org-2.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/orgs_hub4j-test-org-2.json diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/orgs_hub4j-test-org_repos-4.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/orgs_hub4j-test-org_repos-4.json similarity index 96% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/orgs_hub4j-test-org_repos-4.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/orgs_hub4j-test-org_repos-4.json index 0ab73aa43..09eb04f84 100644 --- a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/orgs_hub4j-test-org_repos-4.json +++ b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/orgs_hub4j-test-org_repos-4.json @@ -13,7 +13,7 @@ ], "headers": { "Accept": { - "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2" + "equalTo": "application/vnd.github.baptiste-preview+json" } } }, diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/orgs_hub4j-test-org_teams-3.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/orgs_hub4j-test-org_teams-3.json similarity index 100% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/orgs_hub4j-test-org_teams-3.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/orgs_hub4j-test-org_teams-3.json diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/repos_hub4j-test-org_github-api-template-test_readme-5.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/repos_hub4j-test-org_github-api-template-test_readme-5.json similarity index 100% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/repos_hub4j-test-org_github-api-template-test_readme-5.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/repos_hub4j-test-org_github-api-template-test_readme-5.json diff --git a/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/user-1.json b/src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/user-1.json similarity index 100% rename from src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParametersIsTemplate/mappings/user-1.json rename to src/test/resources/org/kohsuke/github/GHOrganizationTest/wiremock/testCreateRepositoryWithParameterIsTemplate/mappings/user-1.json