{"action":"created","comment":{"url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/comments/25222005","id":25222005,"diff_hunk":"@@ -1,288 +0,0 @@\n-package nz.ac.auckland.scriptella.driver.http;\n-\n-import org.apache.http.HttpResponse;\n-import org.apache.http.NameValuePair;\n-import org.apache.http.client.config.RequestConfig;\n-import org.apache.http.client.entity.UrlEncodedFormEntity;\n-import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;\n-import org.apache.http.client.methods.HttpGet;\n-import org.apache.http.client.methods.HttpPost;\n-import org.apache.http.client.methods.HttpPut;\n-import org.apache.http.client.utils.URIBuilder;\n-import org.apache.http.entity.StringEntity;\n-import org.apache.http.impl.client.CloseableHttpClient;\n-import org.apache.http.impl.client.HttpClientBuilder;\n-import org.apache.http.message.BasicNameValuePair;\n-import org.slf4j.Logger;\n-import org.slf4j.LoggerFactory;\n-import scriptella.driver.script.ParametersCallbackMap;\n-import scriptella.spi.*;\n-import scriptella.util.CollectionUtils;\n-\n-import java.io.BufferedReader;\n-import java.io.IOException;\n-import java.net.URISyntaxException;\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Properties;\n-\n-\n-/**\n- * @author Jack W Finlay - jfin404@aucklanduni.ac.nz\n- */\n-public class HTTPConnection extends AbstractConnection {\n-\n-    private String host;\n-    private String type;\n-    private String format;\n-    private int timeOut;\n-    private HttpGet httpGet;\n-    private HttpResponse httpResponse;\n-    private HttpEntityEnclosingRequestBase httpRequestBase;\n-    \n-    private final int DEFAULT_TIMEOUT = 0;\n-\n-    CloseableHttpClient httpClient;\n-\n-    Logger logger = LoggerFactory.getLogger(HTTPConnection.class);\n-\n-    public HTTPConnection() {\n-    } // Overrides default constructor\n-\n-    /**\n-     * Constructor used for unit testing, allows setting of all the parameters directly.\n-     *\n-     * @param host    The URL of the endpoint.\n-     * @param type    The method to use for the request i.e. GET, POST, or PUT\n-     * @param format  The format of the content. \"String\" or \"JSON\"\n-     * @param timeOut The request time-out.\n-     */\n-    public HTTPConnection(String host, String type, String format, int timeOut) {\n-        this.host = host;\n-        this.type = type;\n-        this.format = format;\n-        this.timeOut = timeOut;\n-    }\n-\n-    /**\n-     * Constructor used by Scriptella to initialise the HTTPConnection object.\n-     *\n-     * @param connectionParameters The parameters specified in the connection tag in the ETL file.\n-     */\n-    public HTTPConnection(ConnectionParameters connectionParameters) {\n-\n-        super(Driver.DIALECT, connectionParameters);\n-\n-        // Convert connection parameters to a map so that fields can be set.\n-        Properties properties = CollectionUtils.asProperties(connectionParameters.getProperties());\n-        properties.putAll(connectionParameters.getUrlQueryMap());\n-\n-        host = connectionParameters.getUrl();\n-        logger.debug(\"Host: {}\", host);\n-\n-        type = properties.getProperty(\"type\", \"GET\");\n-        logger.debug(\"Type: {}\", type);\n-\n-        format = properties.getProperty(\"format\", \"String\");\n-        logger.debug(\"Format: {}\", format);\n-\n-        timeOut = Integer.parseInt(properties.getOrDefault(\"timeout\", DEFAULT_TIMEOUT).toString());\n-        logger.debug(\"Timeout: {}\", timeOut);\n-\n-    }\n-\n-    /**\n-     * Executes the request with the provided resource and passed in variables.\n-     *\n-     * @param resource           The body of the script.\n-     * @param parametersCallback The map of variables passed in from query that script in nested in.\n-     * @throws ProviderException\n-     */\n-    @Override\n-    public void executeScript(Resource resource, ParametersCallback parametersCallback) throws ProviderException {\n-        run(resource, parametersCallback);\n-\n-        logger.debug(\"Operation complete for current entry.\");\n-    }\n-\n-    /**\n-     * Executes the request as a query, returning the response. Not yet implemented.\n-     *\n-     * @param resource           The body of the query\n-     * @param parametersCallback the map of variables.\n-     * @param queryCallback      The response.\n-     * @throws ProviderException\n-     */\n-    @Override\n-    public void executeQuery(Resource resource, ParametersCallback parametersCallback, QueryCallback queryCallback) throws ProviderException {\n-        throw new UnsupportedOperationException();\n-    }\n-\n-    private void run(Resource resource, ParametersCallback parametersCallback) {\n-\n-        // Create request configurations and set timeout.\n-        RequestConfig config = RequestConfig.custom()\n-                .setConnectTimeout(timeOut)\n-                .setConnectionRequestTimeout(timeOut)\n-                .setSocketTimeout(timeOut).build();\n-        httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();\n-        logger.debug(\"Built HttpClient\");\n-\n-        ParametersCallbackMap parameters = new ParametersCallbackMap(parametersCallback);\n-\n-        try {\n-            if (type.toUpperCase().equals(\"GET\")) {\n-                logger.debug(\"Http method is GET.\");\n-\n-                URIBuilder uriBuilder = new URIBuilder(host);\n-                uriBuilder.addParameters(generateParams(resource, parameters));\n-                logger.debug(\"Added parameters to uri.\");\n-\n-                httpGet = new HttpGet(uriBuilder.build());\n-\n-                httpResponse = httpClient.execute(httpGet);\n-                logger.debug(\"HTTP request executed.\");\n-\n-            } else {\n-\n-                if (type.toUpperCase().equals(\"PUT\")) {\n-                    httpRequestBase = new HttpPut(host);\n-                    logger.debug(\"Http method is PUT.\");\n-                } else {\n-                    httpRequestBase = new HttpPost(host);\n-                    logger.debug(\"Http method is POST.\");\n-                }\n-\n-                if (format.toUpperCase().equals(\"STRING\")) {\n-\n-                    httpRequestBase.setEntity(new UrlEncodedFormEntity(generateParams(resource, parameters)));\n-                    logger.debug(\"URLEncodedFormEntity created and set.\");\n-                } else { // JSON\n-\n-                    StringEntity se = new StringEntity(parseJSON(resource, parameters), \"UTF-8\");\n-                    logger.debug(\"JSON parsed.\");\n-\n-                    se.setContentType(\"application/json; charset=UTF-8\");\n-\n-                    httpRequestBase.setEntity(se);\n-                    logger.debug(\"JSON format entity set for http request.\");\n-                }\n-\n-                httpResponse = httpClient.execute(httpRequestBase);\n-                logger.debug(\"Http request executed.\");\n-            }\n-\n-            logger.info(\"Response Status: {}\", httpResponse.getStatusLine().getStatusCode());\n-\n-        } catch (IOException | URISyntaxException e) {\n-            throw new RuntimeException(e);\n-        }\n-    }\n-\n-\n-    private List<NameValuePair> generateParams(Resource resource, ParametersCallbackMap parameters) {\n-        BufferedReader br = null;\n-\n-        try {\n-            br = new BufferedReader(resource.open());\n-            logger.debug(\"Resource opened for reading.\");\n-        } catch (IOException e) {\n-            throw new RuntimeException(e);\n-        }\n-\n-        String line;\n-        List<NameValuePair> nameValuePairList = new ArrayList<>(1);\n-\n-        try {\n-            while ((line = br.readLine()) != null) {\n-                String[] components = line.trim().split(\"=\");\n-                if (components.length > 1) {\n-                    // Remove \"$\" and double-quotes used to make driver work as user would expect based on csv driver and others.\n-\n-                    String key = components[1].replace(\"$\", \"\").replace(\"?\", \"\").replace(\"\\\"\", \"\");\n-                    logger.debug(\"Stripped \\'$\\' and \\'?\\' from variables.\");\n-                    if (parameters.containsKey(key)) {\n-                        nameValuePairList.add(new BasicNameValuePair(components[0], (String) parameters.getParameter(key)));\n-\n-                        logger.debug(\"Variable found, added to List.\");\n-                    } else {\n-                        nameValuePairList.add(new BasicNameValuePair(components[0], components[1]));\n-                        logger.debug(\"Line contains no variables, adding to list as literal.\");\n-                    }\n-                }\n-            }\n-        } catch (IOException e) {\n-            logger.error(\"Error occurred while generating request parameters: \", e);\n-            throw new RuntimeException(e);\n-        }\n-\n-        return nameValuePairList;\n-    }\n-\n-\n-    private String parseJSON(Resource resource, ParametersCallbackMap parameters) {\n-\n-        BufferedReader br = null;\n-        try {\n-            br = new BufferedReader(resource.open());\n-            logger.debug(\"Resource opened for reading.\");\n-        } catch (IOException e) {\n-            throw new RuntimeException(e);\n-        }\n-\n-        // Using an array list as \"\\n\" in strings tends to break things.\n-        List<String> jsonString = new ArrayList<>();\n-        String line;\n-\n-        try {\n-            while ((line = br.readLine()) != null) {\n-                jsonString.add(line);\n-            }\n-        } catch (IOException e) {\n-            throw new RuntimeException(e);\n-        }\n-\n-        StringBuilder parsedJSON = new StringBuilder(\"\");\n-\n-        for (String jsonLine : jsonString) {\n-            // Check if line has a comma as it is stripped out if value is replaced.\n-            String comma = jsonLine.contains(\",\") ? \",\" : \"\";\n-\n-            String[] split = jsonLine.trim().split(\":\");\n-            if (split.length > 1) {\n-                // Check if value is meant to be a variable and not literal value with \"$\" in it.\n-                if (split[1].contains(\"$\") && !split[1].contains(\"\\\"\")) {\n-                    String key = split[1].trim().replace(\"$\", \"\").replace(\",\", \"\");\n-                    split[1] = (\"\\\"\" + ((String) parameters.getParameter(key)) + \"\\\"\" + comma);\n-\n-                    logger.debug(\"JSON string contains variable, replaced with value.\");\n-                }\n-\n-                parsedJSON.append(split[0] + \":\" + split[1]);\n-\n-            } else {\n-                parsedJSON.append(jsonLine);\n-            }\n-        }\n-\n-        return parsedJSON.toString();\n-    }\n-\n-    /**\n-     * Releases HTTP connections.\n-     * @throws ProviderException\n-     */\n-    @Override\n-    public void close() throws ProviderException {\n-        try {\n-            if (httpGet != null) {\n-                httpGet.releaseConnection();\n-            } else if (httpRequestBase != null) {\n-                httpRequestBase.releaseConnection();\n-            }\n-        } catch (Exception e) {\n-            logger.error(\"Error occurred while trying to release http connection: \", e);\n-            throw new RuntimeException(e);","path":"src/main/java/nz/ac/auckland/scriptella/driver/http/HTTPConnection.java","position":285,"original_position":285,"commit_id":"77ff69c9005b29a6faed9e702264b3643a46978a","original_commit_id":"77ff69c9005b29a6faed9e702264b3643a46978a","user":{"login":"kdeng","id":164055,"avatar_url":"https://avatars.githubusercontent.com/u/164055?v=3","gravatar_id":"","url":"https://api.github.com/users/kdeng","html_url":"https://github.com/kdeng","followers_url":"https://api.github.com/users/kdeng/followers","following_url":"https://api.github.com/users/kdeng/following{/other_user}","gists_url":"https://api.github.com/users/kdeng/gists{/gist_id}","starred_url":"https://api.github.com/users/kdeng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kdeng/subscriptions","organizations_url":"https://api.github.com/users/kdeng/orgs","repos_url":"https://api.github.com/users/kdeng/repos","events_url":"https://api.github.com/users/kdeng/events{/privacy}","received_events_url":"https://api.github.com/users/kdeng/received_events","type":"User","site_admin":false},"body":"method expects \"ProviderException\", instead of \"RuntimeException\".","created_at":"2015-02-24T01:45:06Z","updated_at":"2015-02-24T01:45:06Z","html_url":"https://github.com/uoa-group-applications/scriptella-http/pull/1#discussion_r25222005","pull_request_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/comments/25222005"},"html":{"href":"https://github.com/uoa-group-applications/scriptella-http/pull/1#discussion_r25222005"},"pull_request":{"href":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/1","id":29863336,"html_url":"https://github.com/uoa-group-applications/scriptella-http/pull/1","diff_url":"https://github.com/uoa-group-applications/scriptella-http/pull/1.diff","patch_url":"https://github.com/uoa-group-applications/scriptella-http/pull/1.patch","issue_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/issues/1","number":1,"state":"open","locked":false,"title":"code review","user":{"login":"kdeng","id":164055,"avatar_url":"https://avatars.githubusercontent.com/u/164055?v=3","gravatar_id":"","url":"https://api.github.com/users/kdeng","html_url":"https://github.com/kdeng","followers_url":"https://api.github.com/users/kdeng/followers","following_url":"https://api.github.com/users/kdeng/following{/other_user}","gists_url":"https://api.github.com/users/kdeng/gists{/gist_id}","starred_url":"https://api.github.com/users/kdeng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kdeng/subscriptions","organizations_url":"https://api.github.com/users/kdeng/orgs","repos_url":"https://api.github.com/users/kdeng/repos","events_url":"https://api.github.com/users/kdeng/events{/privacy}","received_events_url":"https://api.github.com/users/kdeng/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-02-24T01:22:24Z","updated_at":"2015-02-24T01:45:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/1/commits","review_comments_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/1/comments","review_comment_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/comments{/number}","comments_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/issues/1/comments","statuses_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/statuses/77ff69c9005b29a6faed9e702264b3643a46978a","head":{"label":"kdeng:master","ref":"master","sha":"77ff69c9005b29a6faed9e702264b3643a46978a","user":{"login":"kdeng","id":164055,"avatar_url":"https://avatars.githubusercontent.com/u/164055?v=3","gravatar_id":"","url":"https://api.github.com/users/kdeng","html_url":"https://github.com/kdeng","followers_url":"https://api.github.com/users/kdeng/followers","following_url":"https://api.github.com/users/kdeng/following{/other_user}","gists_url":"https://api.github.com/users/kdeng/gists{/gist_id}","starred_url":"https://api.github.com/users/kdeng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kdeng/subscriptions","organizations_url":"https://api.github.com/users/kdeng/orgs","repos_url":"https://api.github.com/users/kdeng/repos","events_url":"https://api.github.com/users/kdeng/events{/privacy}","received_events_url":"https://api.github.com/users/kdeng/received_events","type":"User","site_admin":false},"repo":{"id":31238643,"name":"scriptella-http","full_name":"kdeng/scriptella-http","owner":{"login":"kdeng","id":164055,"avatar_url":"https://avatars.githubusercontent.com/u/164055?v=3","gravatar_id":"","url":"https://api.github.com/users/kdeng","html_url":"https://github.com/kdeng","followers_url":"https://api.github.com/users/kdeng/followers","following_url":"https://api.github.com/users/kdeng/following{/other_user}","gists_url":"https://api.github.com/users/kdeng/gists{/gist_id}","starred_url":"https://api.github.com/users/kdeng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kdeng/subscriptions","organizations_url":"https://api.github.com/users/kdeng/orgs","repos_url":"https://api.github.com/users/kdeng/repos","events_url":"https://api.github.com/users/kdeng/events{/privacy}","received_events_url":"https://api.github.com/users/kdeng/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kdeng/scriptella-http","description":"An HTTP connection driver for Scriptella.","fork":true,"url":"https://api.github.com/repos/kdeng/scriptella-http","forks_url":"https://api.github.com/repos/kdeng/scriptella-http/forks","keys_url":"https://api.github.com/repos/kdeng/scriptella-http/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kdeng/scriptella-http/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kdeng/scriptella-http/teams","hooks_url":"https://api.github.com/repos/kdeng/scriptella-http/hooks","issue_events_url":"https://api.github.com/repos/kdeng/scriptella-http/issues/events{/number}","events_url":"https://api.github.com/repos/kdeng/scriptella-http/events","assignees_url":"https://api.github.com/repos/kdeng/scriptella-http/assignees{/user}","branches_url":"https://api.github.com/repos/kdeng/scriptella-http/branches{/branch}","tags_url":"https://api.github.com/repos/kdeng/scriptella-http/tags","blobs_url":"https://api.github.com/repos/kdeng/scriptella-http/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kdeng/scriptella-http/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kdeng/scriptella-http/git/refs{/sha}","trees_url":"https://api.github.com/repos/kdeng/scriptella-http/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kdeng/scriptella-http/statuses/{sha}","languages_url":"https://api.github.com/repos/kdeng/scriptella-http/languages","stargazers_url":"https://api.github.com/repos/kdeng/scriptella-http/stargazers","contributors_url":"https://api.github.com/repos/kdeng/scriptella-http/contributors","subscribers_url":"https://api.github.com/repos/kdeng/scriptella-http/subscribers","subscription_url":"https://api.github.com/repos/kdeng/scriptella-http/subscription","commits_url":"https://api.github.com/repos/kdeng/scriptella-http/commits{/sha}","git_commits_url":"https://api.github.com/repos/kdeng/scriptella-http/git/commits{/sha}","comments_url":"https://api.github.com/repos/kdeng/scriptella-http/comments{/number}","issue_comment_url":"https://api.github.com/repos/kdeng/scriptella-http/issues/comments{/number}","contents_url":"https://api.github.com/repos/kdeng/scriptella-http/contents/{+path}","compare_url":"https://api.github.com/repos/kdeng/scriptella-http/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kdeng/scriptella-http/merges","archive_url":"https://api.github.com/repos/kdeng/scriptella-http/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kdeng/scriptella-http/downloads","issues_url":"https://api.github.com/repos/kdeng/scriptella-http/issues{/number}","pulls_url":"https://api.github.com/repos/kdeng/scriptella-http/pulls{/number}","milestones_url":"https://api.github.com/repos/kdeng/scriptella-http/milestones{/number}","notifications_url":"https://api.github.com/repos/kdeng/scriptella-http/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kdeng/scriptella-http/labels{/name}","releases_url":"https://api.github.com/repos/kdeng/scriptella-http/releases{/id}","created_at":"2015-02-24T00:59:37Z","updated_at":"2015-02-24T01:18:41Z","pushed_at":"2015-02-24T01:18:41Z","git_url":"git://github.com/kdeng/scriptella-http.git","ssh_url":"git@github.com:kdeng/scriptella-http.git","clone_url":"https://github.com/kdeng/scriptella-http.git","svn_url":"https://github.com/kdeng/scriptella-http","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"uoa-group-applications:master","ref":"master","sha":"dae864d5ee285986b055bf07d16187de507eba98","user":{"login":"uoa-group-applications","id":4483077,"avatar_url":"https://avatars.githubusercontent.com/u/4483077?v=3","gravatar_id":"","url":"https://api.github.com/users/uoa-group-applications","html_url":"https://github.com/uoa-group-applications","followers_url":"https://api.github.com/users/uoa-group-applications/followers","following_url":"https://api.github.com/users/uoa-group-applications/following{/other_user}","gists_url":"https://api.github.com/users/uoa-group-applications/gists{/gist_id}","starred_url":"https://api.github.com/users/uoa-group-applications/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uoa-group-applications/subscriptions","organizations_url":"https://api.github.com/users/uoa-group-applications/orgs","repos_url":"https://api.github.com/users/uoa-group-applications/repos","events_url":"https://api.github.com/users/uoa-group-applications/events{/privacy}","received_events_url":"https://api.github.com/users/uoa-group-applications/received_events","type":"Organization","site_admin":false},"repo":{"id":31184027,"name":"scriptella-http","full_name":"uoa-group-applications/scriptella-http","owner":{"login":"uoa-group-applications","id":4483077,"avatar_url":"https://avatars.githubusercontent.com/u/4483077?v=3","gravatar_id":"","url":"https://api.github.com/users/uoa-group-applications","html_url":"https://github.com/uoa-group-applications","followers_url":"https://api.github.com/users/uoa-group-applications/followers","following_url":"https://api.github.com/users/uoa-group-applications/following{/other_user}","gists_url":"https://api.github.com/users/uoa-group-applications/gists{/gist_id}","starred_url":"https://api.github.com/users/uoa-group-applications/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uoa-group-applications/subscriptions","organizations_url":"https://api.github.com/users/uoa-group-applications/orgs","repos_url":"https://api.github.com/users/uoa-group-applications/repos","events_url":"https://api.github.com/users/uoa-group-applications/events{/privacy}","received_events_url":"https://api.github.com/users/uoa-group-applications/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/uoa-group-applications/scriptella-http","description":"An HTTP connection driver for Scriptella.","fork":false,"url":"https://api.github.com/repos/uoa-group-applications/scriptella-http","forks_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/forks","keys_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/teams","hooks_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/hooks","issue_events_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/issues/events{/number}","events_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/events","assignees_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/assignees{/user}","branches_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/branches{/branch}","tags_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/tags","blobs_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/git/refs{/sha}","trees_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/statuses/{sha}","languages_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/languages","stargazers_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/stargazers","contributors_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/contributors","subscribers_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/subscribers","subscription_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/subscription","commits_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/commits{/sha}","git_commits_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/git/commits{/sha}","comments_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/comments{/number}","issue_comment_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/issues/comments{/number}","contents_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/contents/{+path}","compare_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/merges","archive_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/downloads","issues_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/issues{/number}","pulls_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls{/number}","milestones_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/milestones{/number}","notifications_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/labels{/name}","releases_url":"https://api.github.com/repos/uoa-group-applications/scriptella-http/releases{/id}","created_at":"2015-02-22T22:32:44Z","updated_at":"2015-02-24T01:17:31Z","pushed_at":"2015-02-24T01:17:29Z","git_url":"git://github.com/uoa-group-applications/scriptella-http.git","ssh_url":"git@github.com:uoa-group-applications/scriptella-http.git","clone_url":"https://github.com/uoa-group-applications/scriptella-http.git","svn_url":"https://github.com/uoa-group-applications/scriptella-http","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/1"},"html":{"href":"https://github.com/uoa-group-applications/scriptella-http/pull/1"},"issue":{"href":"https://api.github.com/repos/uoa-group-applications/scriptella-http/issues/1"},"comments":{"href":"https://api.github.com/repos/uoa-group-applications/scriptella-http/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/uoa-group-applications/scriptella-http/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/uoa-group-applications/scriptella-http/statuses/77ff69c9005b29a6faed9e702264b3643a46978a"}}}}