src/main/java/org/eurekaclinical/scribeupext/provider/GitHubProvider.java
@Override
    protected UserProfile extractUserProfile(String body) {
        final GitHubProfile profile = new GitHubProfile();
        final JsonNode json = JsonHelper.getFirstNode(body);
        if (json != null) {
            profile.setId(JsonHelper.get(json, "id"));
            profile.addAttribute(EurekaAttributesDefinition.USERNAME, JsonHelper.get(json, GitHubAttributesDefinition.LOGIN));
            profile.addAttribute(EurekaAttributesDefinition.FULLNAME, JsonHelper.get(json, GitHubAttributesDefinition.NAME));
            profile.addAttribute(EurekaAttributesDefinition.EMAIL, JsonHelper.get(json, GitHubAttributesDefinition.EMAIL));
            profile.addAttribute(EurekaAttributesDefinition.ORGANIZATION, JsonHelper.get(json, GitHubAttributesDefinition.COMPANY));
        }
        return profile;
    }
@Override
    protected UserProfile extractUserProfile(String body) {
        final GitHubProfile profile = new GitHubProfile();
        final JsonNode json = JsonHelper.getFirstNode(body);
        if (json != null) {
            profile.setId(JsonHelper.get(json, "id"));
            profile.addAttribute(EurekaAttributesDefinition.USERNAME, JsonHelper.get(json, GitHubAttributesDefinition.LOGIN));
            profile.addAttribute(EurekaAttributesDefinition.FULLNAME, JsonHelper.get(json, GitHubAttributesDefinition.NAME));
            profile.addAttribute(EurekaAttributesDefinition.EMAIL, JsonHelper.get(json, GitHubAttributesDefinition.EMAIL));
            profile.addAttribute(EurekaAttributesDefinition.ORGANIZATION, JsonHelper.get(json, GitHubAttributesDefinition.COMPANY));
        }
        return profile;
    }
Returns the user's profile using the attributes that Eureka! Clinical
expects.

@param body the JSON response from the user profile request.

@return the user's profile.