@Override public String getProfileId() { return getUserProfile().getLogin(); }
@Override public boolean test(T api) { try { api.getUserOperations().getUserProfile().getLogin(); return true; } catch (Exception e) { // ignore } return false; }
@Override public GitHubUserProfile getUserProfile() { return getRestTemplate().getForObject(buildUri("user"), GitHubUserProfile.class); }
@Override public UserProfile fetchUserProfile(T api) { GitHubUserProfile ghUserProfile = api.getUserOperations().getUserProfile(); Tuple2<String, String> loginNameTuple = extractLoginName(ghUserProfile); return new UserProfileBuilder().setUsername(loginNameTuple._1).setName(loginNameTuple._2) .setEmail(ghUserProfile.getEmail()).build(); }
private void initialize() { userOperations = new UserTemplate(getRestTemplate(), isAuthorized(), this.apiBaseUrl); repositoryOperations = new RepositoryTemplate(getRestTemplate(), isAuthorized(), this.apiBaseUrl); authorizationOperations = new AuthorizationTemplate(getRestTemplate(), isAuthorized(), this.apiBaseUrl); organizationOperations = new OrganizationTemplate(getRestTemplate(), isAuthorized(), this.apiBaseUrl); }
@Override public List<Email> listEmails() { return Arrays .asList(getRestTemplate().getForEntity(buildUriString(USER_EMAILS_PATH), Email[].class).getBody()); }
@Override public void setConnectionValues(T api, ConnectionValues values) { GitHubUserProfile ghUserProfile = api.getUserOperations().getUserProfile(); Tuple2<String, String> loginNameTuple = extractLoginName(ghUserProfile); values.setProviderUserId(loginNameTuple._1); values.setDisplayName(loginNameTuple._2); }
@Override public void deleteEmails(String... emails) { deleteEmails(Arrays.asList(emails)); }
@Override public List<Email> addEmails(String... emails) { return addEmails(Arrays.asList(emails)); }
@Override public BuildHook convert(PullRequestPayload source) { BuildHook bh = new BuildHook(); bh.setAuthor(source.getSender().getLogin()); // bh.setAuthorEmail(source.getSender().get); bh.setBranch(source.getPullRequest().getHead().getRef()); bh.setCommitId(source.getPullRequest().getHead().getSha()); bh.setMessage(source.getPullRequest().getHead().getLabel()); return bh; }
@Override public String execute(Connection<?> connection) { final Object api = connection.getApi(); Assert.notNull(api, "'api' should never be null"); if (api instanceof Github) { Github github = (Github) api; String login = github.getUserOperations().getUserProfile().getLogin(); LOG.info("Got from API : {}", login); if (configProperties.getAdmins().contains(login)) { registerUser(login, Arrays.asList(ROLE_ADMIN)); return login; } else if (configProperties.getUsers().contains(login)) { registerUser(login, Arrays.asList(ROLE_USER)); return login; } else if (isTeamMember(login, github)) { registerUser(login, Arrays.asList(ROLE_USER)); return login; } else if (configProperties.isAllowAll() ){ registerUser(login, Arrays.asList(ROLE_USER)); return login; } } else { logger.warn("Expected connection of type 'github', but got another : {}", connection.getKey().getProviderId()); } return null; }
@Override public List<ExtPubKey> listPublicKeys() { return getRestTemplate().exchange(buildUri("/user/keys"), HttpMethod.GET, null, extPubKeyListTypeRef) .getBody(); }
private void initialize() { userOperations = new UserTemplate(getRestTemplate(), isAuthorized()); repositoryOperations = new RepositoryTemplate(getRestTemplate(), isAuthorized()); authorizationOperations = new AuthorizationTemplate(getRestTemplate(), isAuthorized()); organizationOperations = new OrganizationTemplate(getRestTemplate(), isAuthorized()); }
@Override public ExtPubKey getPublicKey(long id) { Map<String, Object> uriVariabels = new HashMap<String, Object>(0); uriVariabels.put("id", id); return getRestTemplate().getForObject(buildUri("/user/keys/{id}", uriVariabels), ExtPubKey.class); }
@Override public void deletePublicKey(long id) { Map<String, Object> uriVariabels = new HashMap<String, Object>(0); uriVariabels.put("id", id); getRestTemplate().delete(buildUri("/user/keys/{id}", uriVariabels)); }
@Override public void deleteEmails(List<String> emails) { RequestEntity<List<String>> reqEntity = RequestEntity.method(HttpMethod.DELETE, buildUri(USER_EMAILS_PATH)) .contentType(MediaType.APPLICATION_JSON).body(emails); getRestTemplate().exchange(reqEntity, Void.class); }
@Override public ExtPubKey createPublicKey(PubKeyInput pubKey) { RequestEntity<PubKeyInput> reqEntity = RequestEntity.post(buildUri(USER_EMAILS_PATH)) .contentType(MediaType.APPLICATION_JSON).body(pubKey); return getRestTemplate().exchange(reqEntity, ExtPubKey.class).getBody(); }
@Override public List<Email> addEmails(List<String> emails) { RequestEntity<List<String>> reqEntity = RequestEntity.post(buildUri(USER_EMAILS_PATH)) .contentType(MediaType.APPLICATION_JSON).body(emails); return getRestTemplate().exchange(reqEntity, emailListTypeRef).getBody(); }
@Override public List<PubKey> listPublicKeys(String username) { Map<String, Object> uriVariabels = new HashMap<String, Object>(0); uriVariabels.put("username", username); RequestEntity<Void> reqEntity = RequestEntity.get(buildUri("/users/{username}/keys", uriVariabels)).build(); return getRestTemplate().exchange(reqEntity, pubKeyListTypeRef).getBody(); }