diff --git a/pom.xml b/pom.xml index 739a0e4f4b..de5ce58c4f 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ org.kohsuke github-api jar - 1.1 + 1.2 GitHub API for Java http://kohsuke.org/github-api/ GitHub API for Java diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java index c468508172..69f7711a60 100644 --- a/src/main/java/org/kohsuke/github/GHRepository.java +++ b/src/main/java/org/kohsuke/github/GHRepository.java @@ -120,7 +120,6 @@ public void removeCollaborators(Collection users) throws IOException { } private void modifyCollaborators(Collection users, String op) throws IOException { - root.requireCredential(); verifyMine(); for (GHUser user : users) { new Poster(root).withCredential().to(root.getApiURL("/repos/collaborators/"+name+ op +user.getLogin())); @@ -131,7 +130,6 @@ private void modifyCollaborators(Collection users, String op) throws IOE * Deletes this repository. */ public void delete() throws IOException { - root.requireCredential(); verifyMine(); Poster poster = new Poster(root).withCredential(); URL url = root.getApiURL("/repos/delete/" + name); @@ -140,6 +138,15 @@ public void delete() throws IOException { poster.with("delete_token",token.delete_token).to(url); } + /** + * Forks this repository. + */ + public GHRepository fork() throws IOException { + GHRepository r = new Poster(root).withCredential().to(root.getApiURL("/repos/fork/" + owner + "/" + name), JsonRepository.class).repository; + r.root = root; + return r; + } + private void verifyMine() throws IOException { if (!root.login.equals(owner)) throw new IOException("Operation not applicable to a repository owned by someone else: "+owner); diff --git a/src/main/java/org/kohsuke/github/GitHub.java b/src/main/java/org/kohsuke/github/GitHub.java index 706a9112da..cd3a1ed8f8 100644 --- a/src/main/java/org/kohsuke/github/GitHub.java +++ b/src/main/java/org/kohsuke/github/GitHub.java @@ -125,7 +125,6 @@ public GHUser getMyself() throws IOException { * Newly created repository. */ public GHRepository createRepository(String name, String description, String homepage, boolean isPublic) throws IOException { - requireCredential(); GHRepository r = new Poster(this).withCredential() .with("name", name).with("description", description).with("homepage", homepage) .with("public", isPublic ? 1 : 0).to(getApiURL("/repos/create"), JsonRepository.class).repository; diff --git a/src/main/java/org/kohsuke/github/Poster.java b/src/main/java/org/kohsuke/github/Poster.java index f1e91e5fb5..a6eafdf823 100644 --- a/src/main/java/org/kohsuke/github/Poster.java +++ b/src/main/java/org/kohsuke/github/Poster.java @@ -51,6 +51,7 @@ class Poster { } public Poster withCredential() { + root.requireCredential(); return with("login",root.login).with("token",root.token); }