diff --git a/README b/README index 2a2e1f77fd..6fb589b09a 100644 --- a/README +++ b/README @@ -1,3 +1,3 @@ Java API for GitHub -See http://kohsuke.org/github-api/ for more details +See http://github-api.kohsuke.org/ for more details diff --git a/pom.xml b/pom.xml index e0b19ded3d..ae6d3dedfd 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ github-api - 1.23 + 1.24 GitHub API for Java http://github-api.kohsuke.org/ GitHub API for Java diff --git a/src/main/java/org/kohsuke/github/GHKey.java b/src/main/java/org/kohsuke/github/GHKey.java new file mode 100644 index 0000000000..e9692453d4 --- /dev/null +++ b/src/main/java/org/kohsuke/github/GHKey.java @@ -0,0 +1,48 @@ +package org.kohsuke.github; + +import org.apache.commons.lang.builder.ToStringBuilder; + +/** + * SSH public key. + * + * @author Kohsuke Kawaguchi + */ +public class GHKey { + /*package almost final*/ GitHub root; + + private String url, key, title; + private boolean verified; + private int id; + + public int getId() { + return id; + } + + public String getKey() { + return key; + } + + public String getTitle() { + return title; + } + + /** + * Something like "https://api.github.com/user/keys/73593" + */ + public String getUrl() { + return url; + } + + public boolean isVerified() { + return verified; + } + + /*package*/ GHKey wrap(GitHub root) { + this.root = root; + return this; + } + + public String toString() { + return new ToStringBuilder(this).append("title",title).append("id",id).append("key",key).toString(); + } +} diff --git a/src/main/java/org/kohsuke/github/GHMyself.java b/src/main/java/org/kohsuke/github/GHMyself.java index fe00518e96..0214b2056d 100644 --- a/src/main/java/org/kohsuke/github/GHMyself.java +++ b/src/main/java/org/kohsuke/github/GHMyself.java @@ -26,6 +26,16 @@ public List getEmails() throws IOException { String[] addresses = root.retrieveWithAuth3("/user/emails",String[].class); return Collections.unmodifiableList(Arrays.asList(addresses)); } + + /** + * Returns the read-only list of all the pulic keys of the current user. + * + * @return + * Always non-null. + */ + public List getPublicKeys() throws IOException { + return Collections.unmodifiableList(Arrays.asList(root.retrieveWithAuth3("/user/keys",GHKey[].class))); + } // public void addEmails(Collection emails) throws IOException { //// new Poster(root,ApiVersion.V3).withCredential().to("/user/emails"); diff --git a/src/test/java/org/kohsuke/AppTest.java b/src/test/java/org/kohsuke/AppTest.java index 1e016e771c..71e869fc8d 100644 --- a/src/test/java/org/kohsuke/AppTest.java +++ b/src/test/java/org/kohsuke/AppTest.java @@ -10,6 +10,7 @@ import org.kohsuke.github.GHHook; import org.kohsuke.github.GHBranch; import org.kohsuke.github.GHIssueState; +import org.kohsuke.github.GHKey; import org.kohsuke.github.GHMyself; import org.kohsuke.github.GHOrganization; import org.kohsuke.github.GHOrganization.Permission; @@ -56,6 +57,12 @@ public void tryGetMyself() throws Exception { } } + public void testPublicKeys() throws Exception { + GitHub gh = GitHub.connect(); + List keys = gh.getMyself().getPublicKeys(); + System.out.println(keys); + } + public void tryOrgFork() throws Exception { GitHub gh = GitHub.connect(); gh.getUser("kohsuke").getRepository("rubywm").forkTo(gh.getOrganization("jenkinsci"));