package edu.ncsu.dlf.servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.eclipse.egit.github.core.Repository; import org.eclipse.egit.github.core.User; import org.eclipse.egit.github.core.client.GitHubClient; import org.eclipse.egit.github.core.service.RepositoryService; import org.eclipse.egit.github.core.service.UserService; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class RepoServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String auth = req.getParameter("access_token"); String login = req.getParameter("login"); GitHubClient client = new GitHubClient(); client.setOAuth2Token(auth); RepositoryService repoService = new RepositoryService(client); UserService userService = new UserService(client); User owner = userService.getUser(login); List<Repository> repos; if("Organization".equals(owner.getType())) repos = repoService.getOrgRepositories(login); else repos = repoService.getRepositories(); JSONArray reposJson = new JSONArray(); for(Repository repo : repos) { JSONObject repoJson = new JSONObject(); try { repoJson.put("name", repo.getName()); repoJson.put("owner", repo.getOwner().getLogin()); repoJson.put("url", repo.getUrl()); reposJson.put(repoJson); } catch(JSONException e) { e.printStackTrace(); } } try { resp.setContentType("application/json"); resp.getWriter().write(reposJson.toString(2)); } catch (JSONException e) { e.printStackTrace(); } } }