diff --git a/pom.xml b/pom.xml index bf0cad0640..7f3bb58efa 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ org.kohsuke github-api jar - 1.6 + 1.7 GitHub API for Java http://kohsuke.org/github-api/ GitHub API for Java diff --git a/src/main/java/org/kohsuke/github/GHPerson.java b/src/main/java/org/kohsuke/github/GHPerson.java index 027c4529c3..3e905c05b1 100644 --- a/src/main/java/org/kohsuke/github/GHPerson.java +++ b/src/main/java/org/kohsuke/github/GHPerson.java @@ -43,11 +43,15 @@ public synchronized Map getRepositories() throws IOExceptio */ protected GHRepository refreshRepository(String name) throws IOException { if (repositories==null) getRepositories(); // fetch the base first - GHRepository r = root.retrieve("/repos/show/" + login + '/' + name, JsonRepository.class).wrap(root); + GHRepository r = fetchRepository(name); repositories.put(name,r); return r; } + protected GHRepository fetchRepository(String name) throws IOException { + return root.retrieve("/repos/show/" + login + '/' + name, JsonRepository.class).wrap(root); + } + public GHRepository getRepository(String name) throws IOException { return getRepositories().get(name); } diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java index 8816fb4d9c..be17ed46dd 100644 --- a/src/main/java/org/kohsuke/github/GHRepository.java +++ b/src/main/java/org/kohsuke/github/GHRepository.java @@ -33,6 +33,8 @@ import com.gargoylesoftware.htmlunit.html.HtmlPage; import java.io.IOException; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; import java.net.URL; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -236,7 +238,19 @@ public void renameTo(String newName) throws IOException { try { f.getInputByName("name").setValueAttribute(newName); f.submit((HtmlButton)f.getElementsByTagName("button").get(0)); - name = newName; + + // overwrite fields + final GHRepository r = getOwner().fetchRepository(newName); + for (Field fi : getClass().getDeclaredFields()) { + if (Modifier.isStatic(fi.getModifiers())) continue; + fi.setAccessible(true); + try { + fi.set(this,fi.get(r)); + } catch (IllegalAccessException e) { + throw (IllegalAccessError)new IllegalAccessError().initCause(e); + } + } + return; } catch (ElementNotFoundException e) { // continue