diff --git a/.gitignore b/.gitignore
index f0a8ce2e..e2509900 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+.classpath
+.project
+.settings
 .DS_Store
 build
 **/build
diff --git a/spring-social-github/src/main/java/org/springframework/social/github/api/GitHub.java b/spring-social-github/src/main/java/org/springframework/social/github/api/GitHub.java
index 16f5f328..ba41008a 100644
--- a/spring-social-github/src/main/java/org/springframework/social/github/api/GitHub.java
+++ b/spring-social-github/src/main/java/org/springframework/social/github/api/GitHub.java
@@ -27,6 +27,7 @@
  * referring to the user for whom the access token has been issued.
  * 
  * @author Craig Walls
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
  */
 public interface GitHub extends ApiBinding {
 
@@ -34,20 +35,40 @@ public interface GitHub extends ApiBinding {
 	 * Retrieves the user's GitHub profile ID.
 	 * 
 	 * @return the user's GitHub profile ID.
+	 * @deprecated Move to {@link UserOperations}
 	 */
+	@Deprecated
 	String getProfileId();
 
 	/**
 	 * Retrieves the user's GitHub profile details.
 	 * 
 	 * @return the user's GitHub profile
+	 * @deprecated Move to {@link UserOperations}
 	 */
+	@Deprecated
 	GitHubUserProfile getUserProfile();
 
 	/**
 	 * Retrieve the URL to the user's GitHub profile.
 	 * 
 	 * @return the URL to the user's GitHub profile.
+	 * @deprecated Move to {@link UserOperations}
 	 */
+	@Deprecated
 	String getProfileUrl();
-}
\ No newline at end of file
+	
+	/**
+	 * Returns the portion of the GitHub API containing the repo operations.
+	 * 
+	 * @return repo operations
+	 */
+	RepoOperations repoOperations();
+	
+	/**
+	 * Returns the portion of the GitHub API containing the user operations.
+	 * 
+	 * @return user operations
+	 */
+	UserOperations userOperations();
+}
diff --git a/spring-social-github/src/main/java/org/springframework/social/github/api/GitHubCommit.java b/spring-social-github/src/main/java/org/springframework/social/github/api/GitHubCommit.java
new file mode 100644
index 00000000..ea96729d
--- /dev/null
+++ b/spring-social-github/src/main/java/org/springframework/social/github/api/GitHubCommit.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api;
+
+import java.io.Serializable;
+
+import org.codehaus.jackson.annotate.JsonIgnoreProperties;
+
+/**
+ * A GitHub repository commit.
+ * 
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+@SuppressWarnings("serial")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class GitHubCommit implements Serializable {
+	private String sha;
+	private String url;
+	private GitHubUser committer;
+	private GitHubUser author;
+	
+	public String getSha() { return sha; }
+	
+	public void setSha(String sha) { this.sha = sha; }
+	
+	public String getUrl() { return url; }
+	
+	public void setUrl(String url) { this.url = url; }
+	
+	/**
+	 * @return user who committed the patch, perhaps on behalf of a separate
+	 *         author (e.g., Willie authors code, issues a pull request, and
+	 *         Craig commits it)
+	 */
+	public GitHubUser getCommitter() { return committer; }
+	
+	public void setCommitter(GitHubUser committer) { this.committer = committer; }
+	
+	public GitHubUser getAuthor() { return author; }
+	
+	/**
+	 * @param author user who wrote the patch
+	 */
+	public void setAuthor(GitHubUser author) { this.author = author; }
+}
diff --git a/spring-social-github/src/main/java/org/springframework/social/github/api/GitHubUser.java b/spring-social-github/src/main/java/org/springframework/social/github/api/GitHubUser.java
new file mode 100644
index 00000000..f88f7c07
--- /dev/null
+++ b/spring-social-github/src/main/java/org/springframework/social/github/api/GitHubUser.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api;
+
+import java.io.Serializable;
+
+import org.codehaus.jackson.annotate.JsonIgnoreProperties;
+import org.codehaus.jackson.annotate.JsonProperty;
+
+/**
+ * A GitHub repository user.
+ * 
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+@SuppressWarnings("serial")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class GitHubUser implements Serializable {
+	private Long id;
+	private String url;
+	private String login;
+	private String avatarUrl;
+	private String gravatarId;
+	
+	public Long getId() { return id; }
+	
+	public void setId(Long id) { this.id = id; }
+	
+	public String getUrl() { return url; }
+	
+	public void setUrl(String url) { this.url = url; }
+	
+	/**
+	 * @return watcher's GitHub login
+	 */
+	public String getLogin() { return login; }
+	
+	public void setLogin(String login) { this.login = login; }
+	
+	@JsonProperty("avatar_url")
+	public String getAvatarUrl() { return avatarUrl; }
+	
+	public void setAvatarUrl(String avatarUrl) { this.avatarUrl = avatarUrl; }
+	
+	@JsonProperty("gravatar_id")
+	public String getGravatarId() { return gravatarId; }
+	
+	public void setGravatarId(String gravatarId) { this.gravatarId = gravatarId; }
+}
diff --git a/spring-social-github/src/main/java/org/springframework/social/github/api/RepoOperations.java b/spring-social-github/src/main/java/org/springframework/social/github/api/RepoOperations.java
new file mode 100644
index 00000000..72865949
--- /dev/null
+++ b/spring-social-github/src/main/java/org/springframework/social/github/api/RepoOperations.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api;
+
+import java.util.List;
+
+/**
+ * Interface defining the operations for working with GitHub repositories.
+ * 
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+public interface RepoOperations {
+	
+	/**
+	 * Public operation to return a list of collaborators for the given repository.
+	 * 
+	 * @param user GitHub user
+	 * @param repo GitHub repository
+	 * @return list of collaborators
+	 */
+	List<GitHubUser> getCollaborators(String user, String repo);
+	
+	/**
+	 * Public operation to return a list of commits for the given repository.
+	 * 
+	 * @param user GitHub user
+	 * @param repo GitHub repository
+	 * @return list of commits
+	 */
+	List<GitHubCommit> getCommits(String user, String repo);
+	
+	/**
+	 * Public operation to return a list of watchers for the given repository.
+	 *  
+	 * @param user GitHub user
+	 * @param repo GitHub repository
+	 * @return list of watchers
+	 */
+	List<GitHubUser> getWatchers(String user, String repo);
+}
diff --git a/spring-social-github/src/main/java/org/springframework/social/github/api/UserOperations.java b/spring-social-github/src/main/java/org/springframework/social/github/api/UserOperations.java
new file mode 100644
index 00000000..34241689
--- /dev/null
+++ b/spring-social-github/src/main/java/org/springframework/social/github/api/UserOperations.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api;
+
+import java.util.List;
+
+/**
+ * Interface defining the operations for working with GitHub users.
+ * 
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+public interface UserOperations {
+	
+	/**
+	 * Public operation to return a given user's followers.
+	 * 
+	 * @param user GitHub user
+	 * @return list of followers
+	 */
+	public List<GitHubUser> getFollowers(String user);
+	
+	/**
+	 * Public operation to return the users that a given user is following.
+	 * 
+	 * @param user GitHub user
+	 * @return list of users the given user is following
+	 */
+	public List<GitHubUser> getFollowing(String user);
+}
diff --git a/spring-social-github/src/main/java/org/springframework/social/github/api/impl/AbstractGitHubOperations.java b/spring-social-github/src/main/java/org/springframework/social/github/api/impl/AbstractGitHubOperations.java
new file mode 100644
index 00000000..f70ee5bb
--- /dev/null
+++ b/spring-social-github/src/main/java/org/springframework/social/github/api/impl/AbstractGitHubOperations.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api.impl;
+
+import org.springframework.social.MissingAuthorizationException;
+
+/**
+ * <p>
+ * Based on <code>AbstractTwitterOperations</code>, by Keith Donald.
+ * </p>
+ * 
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+class AbstractGitHubOperations {
+	private final boolean isAuthorized;
+	
+	public AbstractGitHubOperations(boolean isAuthorized) {
+		this.isAuthorized = isAuthorized;
+	}
+	
+	protected void requireAuthorization() {
+		if (!isAuthorized) {
+			throw new MissingAuthorizationException();
+		}
+	}
+	
+	// Using String here instead of URI so I can include braces in the path. See, e.g., RepoTemplate. [WLW]
+	protected String buildUri(String path) {
+//		return URIBuilder.fromUri(API_URL_BASE + path).build();
+		return API_URL_BASE + path;
+	}
+	
+	// GitHub API v3
+	private static final String API_URL_BASE = "https://api.github.com/";
+}
diff --git a/spring-social-github/src/main/java/org/springframework/social/github/api/impl/GitHubTemplate.java b/spring-social-github/src/main/java/org/springframework/social/github/api/impl/GitHubTemplate.java
index 2ae6be82..a1eba07c 100644
--- a/spring-social-github/src/main/java/org/springframework/social/github/api/impl/GitHubTemplate.java
+++ b/spring-social-github/src/main/java/org/springframework/social/github/api/impl/GitHubTemplate.java
@@ -24,22 +24,32 @@
 
 import org.springframework.social.github.api.GitHub;
 import org.springframework.social.github.api.GitHubUserProfile;
+import org.springframework.social.github.api.RepoOperations;
+import org.springframework.social.github.api.UserOperations;
 import org.springframework.social.oauth2.AbstractOAuth2ApiBinding;
 import org.springframework.social.oauth2.OAuth2Version;
 
 /**
  * <p>
- * The central class for interacting with TripIt.
- * </p>
- * <p>
- * TripIt operations require OAuth 1 authentication. Therefore TripIt template
- * must be given the minimal amount of information required to sign requests to
- * the TripIt API with an OAuth <code>Authorization</code> header.
+ * The central class for interacting with GitHub.
  * </p>
  * @author Craig Walls
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
  */
 public class GitHubTemplate extends AbstractOAuth2ApiBinding implements GitHub {
-
+	private RepoOperations repoOperations;
+	private UserOperations userOperations;
+	
+	/**
+	 * No-arg constructor to support cases in which you want to call the GitHub
+	 * API without requiring authorization. This is useful for public operations,
+	 * such as getting the list of watchers for a public repository.
+	 */
+	public GitHubTemplate() {
+		super();
+		initSubApis();
+	}
+	
 	/**
 	 * Constructs a GitHubTemplate with the minimal amount of information
 	 * required to sign requests with an OAuth <code>Authorization</code>
@@ -51,17 +61,29 @@ public class GitHubTemplate extends AbstractOAuth2ApiBinding implements GitHub {
 	 */
 	public GitHubTemplate(String accessToken) {
 		super(accessToken);
+		initSubApis();
 	}
 
+	/* (non-Javadoc)
+	 * @see org.springframework.social.oauth2.AbstractOAuth2ApiBinding#getOAuth2Version()
+	 */
 	@Override
 	protected OAuth2Version getOAuth2Version() {
 		return OAuth2Version.DRAFT_8;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.GitHub#getProfileId()
+	 */
+	@Override
 	public String getProfileId() {
 		return getUserProfile().getUsername();
 	}
 
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.GitHub#getUserProfile()
+	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public GitHubUserProfile getUserProfile() {
 		Map<String, ?> result = getRestTemplate().getForObject(PROFILE_URL, Map.class);
@@ -79,12 +101,33 @@ public GitHubUserProfile getUserProfile() {
 		return new GitHubUserProfile(gitHubId, username, name, location, company, blog, email, profileImageUrl, createdDate);
 	}
 
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.GitHub#getProfileUrl()
+	 */
+	@Override
 	public String getProfileUrl() {
 		return "https://github.com/" + getProfileId();
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.GitHub#repoOperations()
+	 */
+	@Override
+	public RepoOperations repoOperations() { return repoOperations; }
+	
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.GitHub#userOperations()
+	 */
+	@Override
+	public UserOperations userOperations() { return userOperations; }
+	
 	// internal helpers
-
+	
+	private void initSubApis() {
+		this.repoOperations = new RepoTemplate(getRestTemplate(), isAuthorized());
+		this.userOperations = new UserTemplate(getRestTemplate(), isAuthorized());
+	}
+	
 	private Date toDate(String dateString, DateFormat dateFormat) {
 		try {
 			return dateFormat.parse(dateString);
@@ -94,6 +137,7 @@ private Date toDate(String dateString, DateFormat dateFormat) {
 	}
 
 	private DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss Z", Locale.ENGLISH);
-
+	
+	// FIXME Move to UsersTemplate, and update to GitHub API v3 [WLW]
 	static final String PROFILE_URL = "https://github.com/api/v2/json/user/show";
 }
diff --git a/spring-social-github/src/main/java/org/springframework/social/github/api/impl/RepoTemplate.java b/spring-social-github/src/main/java/org/springframework/social/github/api/impl/RepoTemplate.java
new file mode 100644
index 00000000..cf3a41a1
--- /dev/null
+++ b/spring-social-github/src/main/java/org/springframework/social/github/api/impl/RepoTemplate.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api.impl;
+
+import static java.util.Arrays.asList;
+
+import java.util.List;
+
+import org.springframework.social.github.api.GitHubCommit;
+import org.springframework.social.github.api.GitHubUser;
+import org.springframework.social.github.api.RepoOperations;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * <p>
+ * Repository template implementation.
+ * </p>
+ * 
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+public class RepoTemplate extends AbstractGitHubOperations implements RepoOperations {
+	private final RestTemplate restTemplate;
+	
+	/**
+	 * @param restTemplate
+	 * @param isAuthorizedForUser
+	 */
+	public RepoTemplate(RestTemplate restTemplate, boolean isAuthorizedForUser) {
+		super(isAuthorizedForUser);
+		this.restTemplate = restTemplate;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.RepoOperations#getCollaborators(java.lang.String, java.lang.String)
+	 */
+	@Override
+	public List<GitHubUser> getCollaborators(String user, String repo) {
+		return asList(restTemplate.getForObject(buildRepoUri("/collaborators"), GitHubUser[].class, user, repo));
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.RepoOperations#getCommits(java.lang.String, java.lang.String)
+	 */
+	@Override
+	public List<GitHubCommit> getCommits(String user, String repo) {
+		return asList(restTemplate.getForObject(buildRepoUri("/commits"), GitHubCommit[].class, user, repo));
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.RepoOperations#getWatchers(java.lang.String, java.lang.String)
+	 */
+	@Override
+	public List<GitHubUser> getWatchers(String user, String repo) {
+		return asList(restTemplate.getForObject(buildRepoUri("/watchers"), GitHubUser[].class, user, repo));
+	}
+	
+	private String buildRepoUri(String path) {
+		return buildUri("repos/{user}/{repo}" + path);
+	}
+}
diff --git a/spring-social-github/src/main/java/org/springframework/social/github/api/impl/UserTemplate.java b/spring-social-github/src/main/java/org/springframework/social/github/api/impl/UserTemplate.java
new file mode 100644
index 00000000..5c10d428
--- /dev/null
+++ b/spring-social-github/src/main/java/org/springframework/social/github/api/impl/UserTemplate.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api.impl;
+
+import static java.util.Arrays.asList;
+
+import java.util.List;
+
+import org.springframework.social.github.api.GitHubUser;
+import org.springframework.social.github.api.UserOperations;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * <p>
+ * User template implementation.
+ * </p>
+ * 
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+public class UserTemplate extends AbstractGitHubOperations implements UserOperations {
+	private final RestTemplate restTemplate;
+	
+	/**
+	 * @param restTemplate
+	 * @param isAuthorizedForUser
+	 */
+	public UserTemplate(RestTemplate restTemplate, boolean isAuthorizedForUser) {
+		super(isAuthorizedForUser);
+		this.restTemplate = restTemplate;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.UserOperations#getFollowers(java.lang.String)
+	 */
+	@Override
+	public List<GitHubUser> getFollowers(String user) {
+		return asList(restTemplate.getForObject(buildUserUri("/followers"), GitHubUser[].class, user));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.springframework.social.github.api.UserOperations#getFollowing(java.lang.String)
+	 */
+	@Override
+	public List<GitHubUser> getFollowing(String user) {
+		return asList(restTemplate.getForObject(buildUserUri("/following"), GitHubUser[].class, user));
+	}
+
+	private String buildUserUri(String path) {
+		return buildUri("users/{user}" + path);
+	}
+}
diff --git a/spring-social-github/src/test/java/org/springframework/social/github/api/impl/AbstractGitHubApiTest.java b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/AbstractGitHubApiTest.java
new file mode 100644
index 00000000..520e81a7
--- /dev/null
+++ b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/AbstractGitHubApiTest.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api.impl;
+
+import org.junit.Before;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.social.test.client.MockRestServiceServer;
+
+/**
+ * <p>
+ * Based on <code>AbstractTwitterApiTest</code>.
+ * </p>
+ * 
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+public abstract class AbstractGitHubApiTest {
+	protected GitHubTemplate gitHub;
+	protected GitHubTemplate unauthorizedGitHub;
+	protected MockRestServiceServer mockServer;
+	protected HttpHeaders responseHeaders;
+	
+	@Before
+	public void setup() {
+		this.gitHub = new GitHubTemplate("ACCESS_TOKEN");
+		this.mockServer = MockRestServiceServer.createServer(gitHub.getRestTemplate());
+		
+		this.responseHeaders = new HttpHeaders();
+		responseHeaders.setContentType(MediaType.APPLICATION_JSON);
+		
+		this.unauthorizedGitHub = new GitHubTemplate();
+		
+		// Create a mock server just to avoid hitting real GitHub if something gets past the authorization check.
+		MockRestServiceServer.createServer(unauthorizedGitHub.getRestTemplate());
+	}
+
+	protected Resource jsonResource(String filename) {
+		return new ClassPathResource(filename + ".json", getClass());
+	}
+}
diff --git a/spring-social-github/src/test/java/org/springframework/social/github/api/impl/RepoTemplateTest.java b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/RepoTemplateTest.java
new file mode 100644
index 00000000..ac30b6eb
--- /dev/null
+++ b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/RepoTemplateTest.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.springframework.http.HttpMethod.GET;
+import static org.springframework.social.test.client.RequestMatchers.method;
+import static org.springframework.social.test.client.RequestMatchers.requestTo;
+import static org.springframework.social.test.client.ResponseCreators.withResponse;
+
+import org.junit.Test;
+import org.springframework.http.MediaType;
+
+/**
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+public class RepoTemplateTest extends AbstractGitHubApiTest {
+	
+	@Test
+	public void getCollaborators() {
+		responseHeaders.setContentType(MediaType.APPLICATION_JSON);
+		mockServer.expect(requestTo("https://api.github.com/repos/williewheeler/skybase/collaborators"))
+			.andExpect(method(GET))
+			.andRespond(withResponse(jsonResource("repo-collaborators"), responseHeaders));
+		assertEquals(2, gitHub.repoOperations().getCollaborators("williewheeler", "skybase").size());
+	}
+	
+	@Test
+	public void getCommits() {
+		responseHeaders.setContentType(MediaType.APPLICATION_JSON);
+		mockServer.expect(requestTo("https://api.github.com/repos/williewheeler/skybase/commits"))
+			.andExpect(method(GET))
+			.andRespond(withResponse(jsonResource("repo-commits"), responseHeaders));
+		assertEquals(30, gitHub.repoOperations().getCommits("williewheeler", "skybase").size());
+	}
+	
+	@Test
+	public void getWatchers() {
+		responseHeaders.setContentType(MediaType.APPLICATION_JSON);
+		mockServer.expect(requestTo("https://api.github.com/repos/williewheeler/skybase/watchers"))
+			.andExpect(method(GET))
+			.andRespond(withResponse(jsonResource("repo-watchers"), responseHeaders));
+		assertEquals(15, gitHub.repoOperations().getWatchers("williewheeler", "skybase").size());
+	}
+}
diff --git a/spring-social-github/src/test/java/org/springframework/social/github/api/impl/UserTemplateTest.java b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/UserTemplateTest.java
new file mode 100644
index 00000000..1b6e3924
--- /dev/null
+++ b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/UserTemplateTest.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.social.github.api.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.springframework.http.HttpMethod.GET;
+import static org.springframework.social.test.client.RequestMatchers.method;
+import static org.springframework.social.test.client.RequestMatchers.requestTo;
+import static org.springframework.social.test.client.ResponseCreators.withResponse;
+
+import org.junit.Test;
+import org.springframework.http.MediaType;
+
+/**
+ * @author Willie Wheeler (willie.wheeler@gmail.com)
+ */
+public class UserTemplateTest extends AbstractGitHubApiTest {
+	
+	@Test
+	public void getFollowers() {
+		responseHeaders.setContentType(MediaType.APPLICATION_JSON);
+		mockServer.expect(requestTo("https://api.github.com/users/williewheeler/followers"))
+			.andExpect(method(GET))
+			.andRespond(withResponse(jsonResource("user-followers"), responseHeaders));
+		assertEquals(20, gitHub.userOperations().getFollowers("williewheeler").size());
+	}
+	
+	@Test
+	public void getFollowing() {
+		responseHeaders.setContentType(MediaType.APPLICATION_JSON);
+		mockServer.expect(requestTo("https://api.github.com/users/williewheeler/following"))
+			.andExpect(method(GET))
+			.andRespond(withResponse(jsonResource("user-following"), responseHeaders));
+		assertEquals(17, gitHub.userOperations().getFollowing("williewheeler").size());
+	}
+
+}
diff --git a/spring-social-github/src/test/java/org/springframework/social/github/api/impl/repo-collaborators.json b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/repo-collaborators.json
new file mode 100644
index 00000000..badc8adb
--- /dev/null
+++ b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/repo-collaborators.json
@@ -0,0 +1,16 @@
+[
+  {
+    "url": "https://api.github.com/users/williewheeler",
+    "login": "williewheeler",
+    "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "id": 853435,
+    "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+  },
+  {
+    "url": "https://api.github.com/users/pajenson",
+    "login": "pajenson",
+    "avatar_url": "https://secure.gravatar.com/avatar/023321060e937b0c50dd98e3ee299424?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "id": 1205939,
+    "gravatar_id": "023321060e937b0c50dd98e3ee299424"
+  }
+]
diff --git a/spring-social-github/src/test/java/org/springframework/social/github/api/impl/repo-commits.json b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/repo-commits.json
new file mode 100644
index 00000000..9b4c6511
--- /dev/null
+++ b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/repo-commits.json
@@ -0,0 +1,1262 @@
+[
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/a17a4c68f62f4ca464a0faf4907c0417116f4092",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/ad43ae6405aa4d8145fa66d38a258ab5dcf0e5b8",
+        "sha": "ad43ae6405aa4d8145fa66d38a258ab5dcf0e5b8"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-14T11:15:11-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/a17a4c68f62f4ca464a0faf4907c0417116f4092",
+      "message": "Added simple integration with GitHub (query and display repo watchers)",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-14T11:15:11-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/4a46a9fa8f4a6eebcf0480a39a08bc89f4d0dea5",
+        "sha": "4a46a9fa8f4a6eebcf0480a39a08bc89f4d0dea5"
+      }
+    },
+    "sha": "a17a4c68f62f4ca464a0faf4907c0417116f4092"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/ad43ae6405aa4d8145fa66d38a258ab5dcf0e5b8",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/b59854f3d1331dd783b1d0425249585f440b8339",
+        "sha": "b59854f3d1331dd783b1d0425249585f440b8339"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-13T20:59:15-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/ad43ae6405aa4d8145fa66d38a258ab5dcf0e5b8",
+      "message": "Added application entity",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-13T20:59:15-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/bb6ab165019ebf98725cb80afe9072adf8e8d4c6",
+        "sha": "bb6ab165019ebf98725cb80afe9072adf8e8d4c6"
+      }
+    },
+    "sha": "ad43ae6405aa4d8145fa66d38a258ab5dcf0e5b8"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/b59854f3d1331dd783b1d0425249585f440b8339",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/3465fc5a23f2b5e543cf279fcc8acdf22332bfe1",
+        "sha": "3465fc5a23f2b5e543cf279fcc8acdf22332bfe1"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-13T00:19:25-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/b59854f3d1331dd783b1d0425249585f440b8339",
+      "message": "JIT region graph works now",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-13T00:19:25-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/982ded8d366abfb491cee972463f397e69ca0d19",
+        "sha": "982ded8d366abfb491cee972463f397e69ca0d19"
+      }
+    },
+    "sha": "b59854f3d1331dd783b1d0425249585f440b8339"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/3465fc5a23f2b5e543cf279fcc8acdf22332bfe1",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/13271bd14b75eda9fc2ed2136f9a4d445a6fccb5",
+        "sha": "13271bd14b75eda9fc2ed2136f9a4d445a6fccb5"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-12T00:13:41-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/3465fc5a23f2b5e543cf279fcc8acdf22332bfe1",
+      "message": "Getting ready to add JIT visualization",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-12T00:13:41-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/63b4bd546d6e52aba992b58fb0abe0550a30e3b5",
+        "sha": "63b4bd546d6e52aba992b58fb0abe0550a30e3b5"
+      }
+    },
+    "sha": "3465fc5a23f2b5e543cf279fcc8acdf22332bfe1"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/13271bd14b75eda9fc2ed2136f9a4d445a6fccb5",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/0f9869fe4951337b7245cb2458159c169f08005a",
+        "sha": "0f9869fe4951337b7245cb2458159c169f08005a"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-09T21:30:25-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/13271bd14b75eda9fc2ed2136f9a4d445a6fccb5",
+      "message": "Building out the region and data center entities",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-09T21:30:25-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/48a91a70786901df20a7d7ab2ae8817f86abc77d",
+        "sha": "48a91a70786901df20a7d7ab2ae8817f86abc77d"
+      }
+    },
+    "sha": "13271bd14b75eda9fc2ed2136f9a4d445a6fccb5"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/0f9869fe4951337b7245cb2458159c169f08005a",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/c1b8d02e614439e9c34b544a42068fa006cc798b",
+        "sha": "c1b8d02e614439e9c34b544a42068fa006cc798b"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-09T00:41:06-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/0f9869fe4951337b7245cb2458159c169f08005a",
+      "message": "Adding regions to data centers. Still in progress.",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-09T00:41:06-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/343f1ae60b350f7b1b8822c57ac514f0694aee73",
+        "sha": "343f1ae60b350f7b1b8822c57ac514f0694aee73"
+      }
+    },
+    "sha": "0f9869fe4951337b7245cb2458159c169f08005a"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/c1b8d02e614439e9c34b544a42068fa006cc798b",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/8f9d3c068e5396fa4791ab7677613143a0a86206",
+        "sha": "8f9d3c068e5396fa4791ab7677613143a0a86206"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-08T20:19:40-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/c1b8d02e614439e9c34b544a42068fa006cc798b",
+      "message": "Added unit tests for form controllers. Cleaned up the test framework a bit.",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-08T20:19:40-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/5e482a8ceef57ef36af824da236232a06c25252e",
+        "sha": "5e482a8ceef57ef36af824da236232a06c25252e"
+      }
+    },
+    "sha": "c1b8d02e614439e9c34b544a42068fa006cc798b"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/8f9d3c068e5396fa4791ab7677613143a0a86206",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/6f8c0075a44a6fc7dc17527d3d7e552fbe019d9a",
+        "sha": "6f8c0075a44a6fc7dc17527d3d7e552fbe019d9a"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-08T00:13:03-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/8f9d3c068e5396fa4791ab7677613143a0a86206",
+      "message": "Fixed bug in equals() method",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-08T00:13:03-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/00f1b49380dcb0f5389c05c715f070eb6e92f02c",
+        "sha": "00f1b49380dcb0f5389c05c715f070eb6e92f02c"
+      }
+    },
+    "sha": "8f9d3c068e5396fa4791ab7677613143a0a86206"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/6f8c0075a44a6fc7dc17527d3d7e552fbe019d9a",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/ae70ca6f25ba3c4534affc3cba5e7bbbca1dfc5a",
+        "sha": "ae70ca6f25ba3c4534affc3cba5e7bbbca1dfc5a"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-08T00:08:59-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/6f8c0075a44a6fc7dc17527d3d7e552fbe019d9a",
+      "message": "Adding Region to DataCenter. In progress.",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-08T00:08:59-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/1edfb23aa8a40939ee24f25d022f3ba9e1b16400",
+        "sha": "1edfb23aa8a40939ee24f25d022f3ba9e1b16400"
+      }
+    },
+    "sha": "6f8c0075a44a6fc7dc17527d3d7e552fbe019d9a"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/ae70ca6f25ba3c4534affc3cba5e7bbbca1dfc5a",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/79bed52a31549e505aa02edc9f0850b7e03d2c85",
+        "sha": "79bed52a31549e505aa02edc9f0850b7e03d2c85"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-07T23:46:09-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/ae70ca6f25ba3c4534affc3cba5e7bbbca1dfc5a",
+      "message": "Cleaned up the service beans, and added unit tests",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-07T23:46:09-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/fc7b741f7619a879895d728f2794662925676ede",
+        "sha": "fc7b741f7619a879895d728f2794662925676ede"
+      }
+    },
+    "sha": "ae70ca6f25ba3c4534affc3cba5e7bbbca1dfc5a"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/79bed52a31549e505aa02edc9f0850b7e03d2c85",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/a399b1156592ba7f8bffd530219dc4634f73d37f",
+        "sha": "a399b1156592ba7f8bffd530219dc4634f73d37f"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-07T13:12:57-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/79bed52a31549e505aa02edc9f0850b7e03d2c85",
+      "message": "Added pass-through service tier to get transactions. Hopefully I can avoid this but dont see how yet.",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-07T13:12:57-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/7bc51f5a184bd63aa02d94f0e757229386a61c5c",
+        "sha": "7bc51f5a184bd63aa02d94f0e757229386a61c5c"
+      }
+    },
+    "sha": "79bed52a31549e505aa02edc9f0850b7e03d2c85"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/a399b1156592ba7f8bffd530219dc4634f73d37f",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/8dbced80f52ae8b012a8c3d889ea936fe9340c2b",
+        "sha": "8dbced80f52ae8b012a8c3d889ea936fe9340c2b"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-07T02:07:36-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/a399b1156592ba7f8bffd530219dc4634f73d37f",
+      "message": "Fixed broken unit test",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-07T02:07:36-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/331c158dc77489af5192fb5f9ddbea96051f8d2c",
+        "sha": "331c158dc77489af5192fb5f9ddbea96051f8d2c"
+      }
+    },
+    "sha": "a399b1156592ba7f8bffd530219dc4634f73d37f"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/8dbced80f52ae8b012a8c3d889ea936fe9340c2b",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/095c15ac6b27afb5c9668d8a1e755bea3b96ccbd",
+        "sha": "095c15ac6b27afb5c9668d8a1e755bea3b96ccbd"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-07T02:05:28-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/8dbced80f52ae8b012a8c3d889ea936fe9340c2b",
+      "message": "Added Formatter stuff. Still need to fix the save code so that it doesnt just create new entities every time we edit something.",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-07T02:05:28-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/6e5007be3298af7e21a8d53b7a881cea7368dce6",
+        "sha": "6e5007be3298af7e21a8d53b7a881cea7368dce6"
+      }
+    },
+    "sha": "8dbced80f52ae8b012a8c3d889ea936fe9340c2b"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/095c15ac6b27afb5c9668d8a1e755bea3b96ccbd",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/d91011a587ad57ba80e17a66ea19966cb33d4e70",
+        "sha": "d91011a587ad57ba80e17a66ea19966cb33d4e70"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-01T21:35:44-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/095c15ac6b27afb5c9668d8a1e755bea3b96ccbd",
+      "message": "Controller refactoring",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2012-01-01T21:35:44-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/6c14f1a43a79f8cb7b91f05354391e9341e936fb",
+        "sha": "6c14f1a43a79f8cb7b91f05354391e9341e936fb"
+      }
+    },
+    "sha": "095c15ac6b27afb5c9668d8a1e755bea3b96ccbd"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/d91011a587ad57ba80e17a66ea19966cb33d4e70",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/77160eb0dee552c308c9a603faa44e92c3e753e5",
+        "sha": "77160eb0dee552c308c9a603faa44e92c3e753e5"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-31T01:26:27-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/d91011a587ad57ba80e17a66ea19966cb33d4e70",
+      "message": "Implementing the farm forms",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-31T01:26:27-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/7d5bf0fcacb2643c9f0bb12ba7dff74f9c941411",
+        "sha": "7d5bf0fcacb2643c9f0bb12ba7dff74f9c941411"
+      }
+    },
+    "sha": "d91011a587ad57ba80e17a66ea19966cb33d4e70"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/77160eb0dee552c308c9a603faa44e92c3e753e5",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/30081a824532a4be80d2a0e3901f83ff697d81ae",
+        "sha": "30081a824532a4be80d2a0e3901f83ff697d81ae"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-30T01:28:21-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/77160eb0dee552c308c9a603faa44e92c3e753e5",
+      "message": "Bugfix",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-30T01:28:21-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/74cfab0ed33b00d1bf9942a0308820f8014c55be",
+        "sha": "74cfab0ed33b00d1bf9942a0308820f8014c55be"
+      }
+    },
+    "sha": "77160eb0dee552c308c9a603faa44e92c3e753e5"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/30081a824532a4be80d2a0e3901f83ff697d81ae",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/1950fbad985a9b48d4c7ca8e4702a996c3acb908",
+        "sha": "1950fbad985a9b48d4c7ca8e4702a996c3acb908"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-30T01:21:52-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/30081a824532a4be80d2a0e3901f83ff697d81ae",
+      "message": "Moved RESTful endpoints to abstract controller. Added ClasspathScanningJaxb2Marshaller.",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-30T01:21:52-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/9398ceb8ac10ead52d23b9026bd573b441e39b1c",
+        "sha": "9398ceb8ac10ead52d23b9026bd573b441e39b1c"
+      }
+    },
+    "sha": "30081a824532a4be80d2a0e3901f83ff697d81ae"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/1950fbad985a9b48d4c7ca8e4702a996c3acb908",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/e0323b0eaa4cf39226a6e0ded09c096cd05174f0",
+        "sha": "e0323b0eaa4cf39226a6e0ded09c096cd05174f0"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-28T00:49:10-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/1950fbad985a9b48d4c7ca8e4702a996c3acb908",
+      "message": "Upgraded to Spring Data Neo4j 2.0.0.RELEASE. Person details now loads manager and direct reports.",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-28T00:49:10-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/55f0eff9350ea9bb34fd584201a9a5fb4777e6a8",
+        "sha": "55f0eff9350ea9bb34fd584201a9a5fb4777e6a8"
+      }
+    },
+    "sha": "1950fbad985a9b48d4c7ca8e4702a996c3acb908"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/e0323b0eaa4cf39226a6e0ded09c096cd05174f0",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/f7061b3d1fcd8d75740b70711383d135c4674231",
+        "sha": "f7061b3d1fcd8d75740b70711383d135c4674231"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-27T22:09:16-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/e0323b0eaa4cf39226a6e0ded09c096cd05174f0",
+      "message": "Added DataCenter and Environment entities",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-27T22:09:16-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/0343ca74196c2bedc48111ef3746d9d5b2c14371",
+        "sha": "0343ca74196c2bedc48111ef3746d9d5b2c14371"
+      }
+    },
+    "sha": "e0323b0eaa4cf39226a6e0ded09c096cd05174f0"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/f7061b3d1fcd8d75740b70711383d135c4674231",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/4db9ff9c64985cb7997f4ef1d5df2dbb65d887e2",
+        "sha": "4db9ff9c64985cb7997f4ef1d5df2dbb65d887e2"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-27T21:03:46-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/f7061b3d1fcd8d75740b70711383d135c4674231",
+      "message": "Cleaned up entity framework code, and added a new Region entity",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-27T21:03:46-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/559eb21f13c8610f40123320cdcdd98b3f20bd67",
+        "sha": "559eb21f13c8610f40123320cdcdd98b3f20bd67"
+      }
+    },
+    "sha": "f7061b3d1fcd8d75740b70711383d135c4674231"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/4db9ff9c64985cb7997f4ef1d5df2dbb65d887e2",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/55e2e3a073e37b7c9b3837649160f33db0137fd9",
+        "sha": "55e2e3a073e37b7c9b3837649160f33db0137fd9"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-24T01:12:08-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/4db9ff9c64985cb7997f4ef1d5df2dbb65d887e2",
+      "message": "Added PersonController unit test. Need to DRY up controllers and their unit tests.",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-24T01:12:08-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/9086ff5c06c14c69cb318090b6c8d3015e2d0f0f",
+        "sha": "9086ff5c06c14c69cb318090b6c8d3015e2d0f0f"
+      }
+    },
+    "sha": "4db9ff9c64985cb7997f4ef1d5df2dbb65d887e2"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/55e2e3a073e37b7c9b3837649160f33db0137fd9",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/c5029a6bf9afd2e154cf938b2ff2556fe4447bee",
+        "sha": "c5029a6bf9afd2e154cf938b2ff2556fe4447bee"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-24T00:51:01-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/55e2e3a073e37b7c9b3837649160f33db0137fd9",
+      "message": "DRYed up the views a bit, and added ability to delete packages",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-24T00:51:01-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/768124c82e244adda39ec35aba9aeeb0c981f5cf",
+        "sha": "768124c82e244adda39ec35aba9aeeb0c981f5cf"
+      }
+    },
+    "sha": "55e2e3a073e37b7c9b3837649160f33db0137fd9"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/c5029a6bf9afd2e154cf938b2ff2556fe4447bee",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/a0770b9ca3d8b6a7faa35e8d8fa9e8b3468bebbe",
+        "sha": "a0770b9ca3d8b6a7faa35e8d8fa9e8b3468bebbe"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-23T16:00:23-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/c5029a6bf9afd2e154cf938b2ff2556fe4447bee",
+      "message": "Submitting package edits now works",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-23T16:00:23-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/8f3920b77be9583304e3ee83b55ab8396d460716",
+        "sha": "8f3920b77be9583304e3ee83b55ab8396d460716"
+      }
+    },
+    "sha": "c5029a6bf9afd2e154cf938b2ff2556fe4447bee"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/a0770b9ca3d8b6a7faa35e8d8fa9e8b3468bebbe",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/7a826a34c3302f1a48061d0407f969f44764d67e",
+        "sha": "7a826a34c3302f1a48061d0407f969f44764d67e"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-23T09:38:46-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/a0770b9ca3d8b6a7faa35e8d8fa9e8b3468bebbe",
+      "message": "Fixed wrong href on edit package forms cancel button",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-23T09:38:46-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/aa9f0fb2845c597a8b93397916320bf454c55a51",
+        "sha": "aa9f0fb2845c597a8b93397916320bf454c55a51"
+      }
+    },
+    "sha": "a0770b9ca3d8b6a7faa35e8d8fa9e8b3468bebbe"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/7a826a34c3302f1a48061d0407f969f44764d67e",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/6c8372145b211410359e71375900a6ae20aec470",
+        "sha": "6c8372145b211410359e71375900a6ae20aec470"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-22T23:16:36-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/7a826a34c3302f1a48061d0407f969f44764d67e",
+      "message": "Added package editor page (but not yet processing edits)",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-22T23:16:36-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/6221e17e20ea83e5a11f676550c88b89e991c350",
+        "sha": "6221e17e20ea83e5a11f676550c88b89e991c350"
+      }
+    },
+    "sha": "7a826a34c3302f1a48061d0407f969f44764d67e"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/6c8372145b211410359e71375900a6ae20aec470",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/fb3c6d85fb60e3823ac11ba6fe6386a2bde90bc2",
+        "sha": "fb3c6d85fb60e3823ac11ba6fe6386a2bde90bc2"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-22T21:35:02-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/6c8372145b211410359e71375900a6ae20aec470",
+      "message": "Added package details page",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-22T21:35:02-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/953569fbaabf3f0983bc68370cc96b95d96556bf",
+        "sha": "953569fbaabf3f0983bc68370cc96b95d96556bf"
+      }
+    },
+    "sha": "6c8372145b211410359e71375900a6ae20aec470"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/fb3c6d85fb60e3823ac11ba6fe6386a2bde90bc2",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/c830c500de3739e53524b3ae38e3a04024fdc3eb",
+        "sha": "c830c500de3739e53524b3ae38e3a04024fdc3eb"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-22T19:45:56-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/fb3c6d85fb60e3823ac11ba6fe6386a2bde90bc2",
+      "message": "Fixed items listed in issue #1",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-22T19:45:56-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/6c7badd50ecaa164572a1ffde1597ed7d7242171",
+        "sha": "6c7badd50ecaa164572a1ffde1597ed7d7242171"
+      }
+    },
+    "sha": "fb3c6d85fb60e3823ac11ba6fe6386a2bde90bc2"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/c830c500de3739e53524b3ae38e3a04024fdc3eb",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/81dc467c75a3343b47aa882561e4ab5263176260",
+        "sha": "81dc467c75a3343b47aa882561e4ab5263176260"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-21T23:29:21-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/c830c500de3739e53524b3ae38e3a04024fdc3eb",
+      "message": "Added support for farms (farm list, create farm)",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-21T23:29:21-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/bc7bbe872dbdbf003f6a0028d1dfcd6848f9e7ef",
+        "sha": "bc7bbe872dbdbf003f6a0028d1dfcd6848f9e7ef"
+      }
+    },
+    "sha": "c830c500de3739e53524b3ae38e3a04024fdc3eb"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/81dc467c75a3343b47aa882561e4ab5263176260",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/5b94327fe92523434004d97d9a29a83251b95483",
+        "sha": "5b94327fe92523434004d97d9a29a83251b95483"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-20T01:13:59-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/81dc467c75a3343b47aa882561e4ab5263176260",
+      "message": "Minor cleanup",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-20T01:13:59-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/43237dd16c4b562b21f252021f3462100e452876",
+        "sha": "43237dd16c4b562b21f252021f3462100e452876"
+      }
+    },
+    "sha": "81dc467c75a3343b47aa882561e4ab5263176260"
+  },
+  {
+    "committer": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "url": "https://api.github.com/repos/williewheeler/skybase/commits/5b94327fe92523434004d97d9a29a83251b95483",
+    "author": {
+      "url": "https://api.github.com/users/williewheeler",
+      "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+      "login": "williewheeler",
+      "id": 853435,
+      "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+    },
+    "parents": [
+      {
+        "url": "https://api.github.com/repos/williewheeler/skybase/commits/6efd42e3c3062f46577d1ce6fd18580b40420808",
+        "sha": "6efd42e3c3062f46577d1ce6fd18580b40420808"
+      }
+    ],
+    "commit": {
+      "committer": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-20T01:09:47-08:00",
+        "name": "Willie Wheeler"
+      },
+      "url": "https://api.github.com/repos/williewheeler/skybase/git/commits/5b94327fe92523434004d97d9a29a83251b95483",
+      "message": "Stuff I think I forgot to commit",
+      "author": {
+        "email": "willie.wheeler@gmail.com",
+        "date": "2011-12-20T01:09:47-08:00",
+        "name": "Willie Wheeler"
+      },
+      "tree": {
+        "url": "https://api.github.com/repos/williewheeler/skybase/git/trees/0d6fa29a1ea9a3fd565a1a66a174db9dbe83f980",
+        "sha": "0d6fa29a1ea9a3fd565a1a66a174db9dbe83f980"
+      }
+    },
+    "sha": "5b94327fe92523434004d97d9a29a83251b95483"
+  }
+]
diff --git a/spring-social-github/src/test/java/org/springframework/social/github/api/impl/repo-watchers.json b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/repo-watchers.json
new file mode 100644
index 00000000..0c92cb20
--- /dev/null
+++ b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/repo-watchers.json
@@ -0,0 +1,107 @@
+[
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/b0a72ae61c5c74a51fe46cf66599b6c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/williewheeler",
+    "login": "williewheeler",
+    "id": 853435,
+    "gravatar_id": "b0a72ae61c5c74a51fe46cf66599b6c5"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/ee38b3516c4761c47e6fbcc551316e14?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/marcel-me",
+    "login": "marcel-me",
+    "id": 545361,
+    "gravatar_id": "ee38b3516c4761c47e6fbcc551316e14"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/50dbd08d0b2c25a496bc1b602090f6d3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/achied",
+    "login": "achied",
+    "id": 611216,
+    "gravatar_id": "50dbd08d0b2c25a496bc1b602090f6d3"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/83a7a627df76052b6f8e3a3c8f2784eb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/dimapin",
+    "login": "dimapin",
+    "id": 198693,
+    "gravatar_id": "83a7a627df76052b6f8e3a3c8f2784eb"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/a5d3247aba706593381f03c82573be46?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/brainagenet",
+    "login": "brainagenet",
+    "id": 430341,
+    "gravatar_id": "a5d3247aba706593381f03c82573be46"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/e30c15b0af02157d13f1f507af77815b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/huhongbo",
+    "login": "huhongbo",
+    "id": 1218296,
+    "gravatar_id": "e30c15b0af02157d13f1f507af77815b"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/4b2d3b487abd091d2c053807054f96d3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/tomaszwojewodka",
+    "login": "tomaszwojewodka",
+    "id": 121123,
+    "gravatar_id": "4b2d3b487abd091d2c053807054f96d3"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/e364331c7a092d5c271f5f2ad0011e53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/lustefaniak",
+    "login": "lustefaniak",
+    "id": 177043,
+    "gravatar_id": "e364331c7a092d5c271f5f2ad0011e53"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/2ef242a79342adcc91d2efd74dd3580d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/objectiveous",
+    "login": "objectiveous",
+    "id": 31235,
+    "gravatar_id": "2ef242a79342adcc91d2efd74dd3580d"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/874f72d0d5e2d9453e11e24d9295eae4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/rferreira",
+    "login": "rferreira",
+    "id": 36054,
+    "gravatar_id": "874f72d0d5e2d9453e11e24d9295eae4"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/277743f4210ce88cfdde363a3e95aaba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/realityforge",
+    "login": "realityforge",
+    "id": 11840,
+    "gravatar_id": "277743f4210ce88cfdde363a3e95aaba"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/f749ea5e3f8c7edfaa862b4285cc5d11?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/AlexandreGarino",
+    "login": "AlexandreGarino",
+    "id": 1234788,
+    "gravatar_id": "f749ea5e3f8c7edfaa862b4285cc5d11"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/2655fcf1a2074cba433602e14a315f7c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/erenay",
+    "login": "erenay",
+    "id": 76151,
+    "gravatar_id": "2655fcf1a2074cba433602e14a315f7c"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/46f74190ca7f6587b8cda1003271422d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/MartyHub",
+    "login": "MartyHub",
+    "id": 1159991,
+    "gravatar_id": "46f74190ca7f6587b8cda1003271422d"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/b4765b2f3a60ffe4cbb5abf68968372a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/firefoxNX",
+    "login": "firefoxNX",
+    "id": 662509,
+    "gravatar_id": "b4765b2f3a60ffe4cbb5abf68968372a"
+  }
+]
diff --git a/spring-social-github/src/test/java/org/springframework/social/github/api/impl/user-followers.json b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/user-followers.json
new file mode 100644
index 00000000..db842cb6
--- /dev/null
+++ b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/user-followers.json
@@ -0,0 +1,142 @@
+[
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/3db92b14c5d444112192569cf555fd71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/araddon",
+    "login": "araddon",
+    "id": 7269,
+    "gravatar_id": "3db92b14c5d444112192569cf555fd71"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/874f72d0d5e2d9453e11e24d9295eae4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/rferreira",
+    "login": "rferreira",
+    "id": 36054,
+    "gravatar_id": "874f72d0d5e2d9453e11e24d9295eae4"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/6a74f9c82501da0e79344ae03b893de3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/solveigbj",
+    "login": "solveigbj",
+    "id": 194597,
+    "gravatar_id": "6a74f9c82501da0e79344ae03b893de3"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/2ab5cdaf03fc0decb7f4ef6ab86b949f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/topchimp",
+    "login": "topchimp",
+    "id": 654166,
+    "gravatar_id": "2ab5cdaf03fc0decb7f4ef6ab86b949f"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/8c8408d354678e6ddfcd2c070270b9fa?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/Bato",
+    "login": "Bato",
+    "id": 877076,
+    "gravatar_id": "8c8408d354678e6ddfcd2c070270b9fa"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/50ed1d890339340a9720eb7bc380cd79?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/geraldvaras",
+    "login": "geraldvaras",
+    "id": 882405,
+    "gravatar_id": "50ed1d890339340a9720eb7bc380cd79"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/8496fcad81f066f1af104d4ba7478722?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/joshuawhite929",
+    "login": "joshuawhite929",
+    "id": 836419,
+    "gravatar_id": "8496fcad81f066f1af104d4ba7478722"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/9c1e6829e781818e3c5e0e3b05240c50?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/penguintux",
+    "login": "penguintux",
+    "id": 4358,
+    "gravatar_id": "9c1e6829e781818e3c5e0e3b05240c50"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/06a0c1f19ad9a0819d636d5b5a67bfbd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/balajigandhi",
+    "login": "balajigandhi",
+    "id": 973866,
+    "gravatar_id": "06a0c1f19ad9a0819d636d5b5a67bfbd"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/6ec9bf4460548f3ff16ee55ae079cb27?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/guru2228",
+    "login": "guru2228",
+    "id": 929441,
+    "gravatar_id": "6ec9bf4460548f3ff16ee55ae079cb27"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/c53b76980875f3f25ae08fd807fe29c6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/pell0",
+    "login": "pell0",
+    "id": 1092175,
+    "gravatar_id": "c53b76980875f3f25ae08fd807fe29c6"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/faadda04f3fc6ee97c3cebe0520bcfa0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/soros",
+    "login": "soros",
+    "id": 1084260,
+    "gravatar_id": "faadda04f3fc6ee97c3cebe0520bcfa0"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/3167e3739e3f8b4e525295702b65ff0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/rykr30",
+    "login": "rykr30",
+    "id": 126556,
+    "gravatar_id": "3167e3739e3f8b4e525295702b65ff0e"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/023321060e937b0c50dd98e3ee299424?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/pajenson",
+    "login": "pajenson",
+    "id": 1205939,
+    "gravatar_id": "023321060e937b0c50dd98e3ee299424"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/4890d24cd54472b250c1c33b189d55f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/boonhero",
+    "login": "boonhero",
+    "id": 1199648,
+    "gravatar_id": "4890d24cd54472b250c1c33b189d55f0"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/b49362cb77f08084ef19c186e235b546?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/acrlewis",
+    "login": "acrlewis",
+    "id": 415644,
+    "gravatar_id": "b49362cb77f08084ef19c186e235b546"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/476de46e138231ef7b1045f3436f53df?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/theksmith",
+    "login": "theksmith",
+    "id": 1279158,
+    "gravatar_id": "476de46e138231ef7b1045f3436f53df"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/98b0b395eaec46a018bcdd65cbd42e54?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/cccarey",
+    "login": "cccarey",
+    "id": 12315,
+    "gravatar_id": "98b0b395eaec46a018bcdd65cbd42e54"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/9f3d204b2240e99c2efb7480f2d67759?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/aarospace",
+    "login": "aarospace",
+    "id": 996588,
+    "gravatar_id": "9f3d204b2240e99c2efb7480f2d67759"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/5c3e12cf51c07a7681a06a0fda7440d0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/JohanVanZyl",
+    "login": "JohanVanZyl",
+    "id": 506881,
+    "gravatar_id": "5c3e12cf51c07a7681a06a0fda7440d0"
+  }
+]
diff --git a/spring-social-github/src/test/java/org/springframework/social/github/api/impl/user-following.json b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/user-following.json
new file mode 100644
index 00000000..ad57c514
--- /dev/null
+++ b/spring-social-github/src/test/java/org/springframework/social/github/api/impl/user-following.json
@@ -0,0 +1,121 @@
+[
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/874f72d0d5e2d9453e11e24d9295eae4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/rferreira",
+    "login": "rferreira",
+    "id": 36054,
+    "gravatar_id": "874f72d0d5e2d9453e11e24d9295eae4"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/3db92b14c5d444112192569cf555fd71?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/araddon",
+    "login": "araddon",
+    "id": 7269,
+    "gravatar_id": "3db92b14c5d444112192569cf555fd71"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/98b0b395eaec46a018bcdd65cbd42e54?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/cccarey",
+    "login": "cccarey",
+    "id": 12315,
+    "gravatar_id": "98b0b395eaec46a018bcdd65cbd42e54"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/75a8def961f136f6564b25d63a5609b5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/timshadel",
+    "login": "timshadel",
+    "id": 2394,
+    "gravatar_id": "75a8def961f136f6564b25d63a5609b5"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/6a8245778e5e13aef2728d993f2101db?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/aaronkhawkins",
+    "login": "aaronkhawkins",
+    "id": 4052,
+    "gravatar_id": "6a8245778e5e13aef2728d993f2101db"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/dd521b7911352127217de208e0a86f4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/devender",
+    "login": "devender",
+    "id": 4103,
+    "gravatar_id": "dd521b7911352127217de208e0a86f4f"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/b4084fdc8c0512d3402387a87b008035?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/preston",
+    "login": "preston",
+    "id": 21615,
+    "gravatar_id": "b4084fdc8c0512d3402387a87b008035"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/0748aff3e2481a342d03eb8ad5fe0469?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/kdonald",
+    "login": "kdonald",
+    "id": 503677,
+    "gravatar_id": "0748aff3e2481a342d03eb8ad5fe0469"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/8496fcad81f066f1af104d4ba7478722?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/joshuawhite929",
+    "login": "joshuawhite929",
+    "id": 836419,
+    "gravatar_id": "8496fcad81f066f1af104d4ba7478722"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/9f3d204b2240e99c2efb7480f2d67759?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/aarospace",
+    "login": "aarospace",
+    "id": 996588,
+    "gravatar_id": "9f3d204b2240e99c2efb7480f2d67759"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/3167e3739e3f8b4e525295702b65ff0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/rykr30",
+    "login": "rykr30",
+    "id": 126556,
+    "gravatar_id": "3167e3739e3f8b4e525295702b65ff0e"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/17af6d0965b9c3112eb700ab11188098?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/nictrix",
+    "login": "nictrix",
+    "id": 291785,
+    "gravatar_id": "17af6d0965b9c3112eb700ab11188098"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/62ace6381e819f9189850e39ede82ad4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/jvsidler",
+    "login": "jvsidler",
+    "id": 18696,
+    "gravatar_id": "62ace6381e819f9189850e39ede82ad4"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/b49362cb77f08084ef19c186e235b546?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/acrlewis",
+    "login": "acrlewis",
+    "id": 415644,
+    "gravatar_id": "b49362cb77f08084ef19c186e235b546"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/023321060e937b0c50dd98e3ee299424?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/pajenson",
+    "login": "pajenson",
+    "id": 1205939,
+    "gravatar_id": "023321060e937b0c50dd98e3ee299424"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/3f57580bb01a059d07731d2180461f4d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/jexp",
+    "login": "jexp",
+    "id": 67427,
+    "gravatar_id": "3f57580bb01a059d07731d2180461f4d"
+  },
+  {
+    "avatar_url": "https://secure.gravatar.com/avatar/476de46e138231ef7b1045f3436f53df?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png",
+    "url": "https://api.github.com/users/theksmith",
+    "login": "theksmith",
+    "id": 1279158,
+    "gravatar_id": "476de46e138231ef7b1045f3436f53df"
+  }
+]
