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