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);
}